Class: Cul::Handles::HandleValueRequest

Inherits:
BaseRequest show all
Defined in:
lib/cul/handles/handle_value_request.rb

Constant Summary collapse

ADMIN_ONLY =
HandleValue::PERM_ADMIN_READ & HandleValue::PERM_ADMIN_WRITE

Constants included from Hdl

Cul::Handles::Hdl::ENV_FLAG_COMPRESSED, Cul::Handles::Hdl::ENV_FLAG_ENCRYPTED, Cul::Handles::Hdl::ENV_FLAG_TRUNCATED, Cul::Handles::Hdl::INDEX_ADMIN_HANDLE, Cul::Handles::Hdl::INDEX_AUTH, Cul::Handles::Hdl::INDEX_MAINTAINER_HANDLE, Cul::Handles::Hdl::MSG_FLAG_AUTH, Cul::Handles::Hdl::MSG_FLAG_AUTH_INDEX, Cul::Handles::Hdl::MSG_FLAG_CACR, Cul::Handles::Hdl::MSG_FLAG_CACR_INDEX, Cul::Handles::Hdl::MSG_FLAG_CERT, Cul::Handles::Hdl::MSG_FLAG_CERT_INDEX, Cul::Handles::Hdl::MSG_FLAG_CONT, Cul::Handles::Hdl::MSG_FLAG_CONT_INDEX, Cul::Handles::Hdl::MSG_FLAG_ENCR, Cul::Handles::Hdl::MSG_FLAG_ENCR_INDEX, Cul::Handles::Hdl::MSG_FLAG_KPAL, Cul::Handles::Hdl::MSG_FLAG_KPAL_INDEX, Cul::Handles::Hdl::MSG_FLAG_PUBL, Cul::Handles::Hdl::MSG_FLAG_PUBL_INDEX, Cul::Handles::Hdl::MSG_FLAG_RECU, Cul::Handles::Hdl::MSG_FLAG_RECU_INDEX, Cul::Handles::Hdl::MSG_FLAG_RRDG, Cul::Handles::Hdl::MSG_FLAG_RRDG_INDEX, Cul::Handles::Hdl::OC_ADD_VALUE, Cul::Handles::Hdl::OC_CHALLENGE_RESPONSE, Cul::Handles::Hdl::OC_CREATE_HANDLE, Cul::Handles::Hdl::OC_DELETE_HANDLE, Cul::Handles::Hdl::OC_GET_SITEINFO, Cul::Handles::Hdl::OC_LIST_HANDLE, Cul::Handles::Hdl::OC_LIST_NA, Cul::Handles::Hdl::OC_MODIFY_VALUE, Cul::Handles::Hdl::OC_REMOVE_VALUE, Cul::Handles::Hdl::OC_RESERVED, Cul::Handles::Hdl::OC_RESOLUTION, Cul::Handles::Hdl::OC_SESSION_EXCHANGEKEY, Cul::Handles::Hdl::OC_SESSION_SETUP, Cul::Handles::Hdl::OC_SESSION_TERMINATE, Cul::Handles::Hdl::OC_VERIFY_RESPONSE, Cul::Handles::Hdl::PERM_ADD_ADMIN, Cul::Handles::Hdl::PERM_ADD_HANDLE, Cul::Handles::Hdl::PERM_ADD_NA, Cul::Handles::Hdl::PERM_ADD_VALUE, Cul::Handles::Hdl::PERM_ALL, Cul::Handles::Hdl::PERM_DELETE_HANDLE, Cul::Handles::Hdl::PERM_DELETE_NA, Cul::Handles::Hdl::PERM_LIST_HDLS, Cul::Handles::Hdl::PERM_MODIFY_ADMIN, Cul::Handles::Hdl::PERM_MODIFY_VALUE, Cul::Handles::Hdl::PERM_READ_VALUE, Cul::Handles::Hdl::PERM_REMOVE_ADMIN, Cul::Handles::Hdl::PERM_REMOVE_VALUE, Cul::Handles::Hdl::RC_ACCESS_DENIED, Cul::Handles::Hdl::RC_AUTHEN_FAILED, Cul::Handles::Hdl::RC_AUTHEN_NEEDED, Cul::Handles::Hdl::RC_AUTHEN_TIMEOUT, Cul::Handles::Hdl::RC_ERROR, Cul::Handles::Hdl::RC_EXPIRED_SITE_INFO, Cul::Handles::Hdl::RC_FORWARDED, Cul::Handles::Hdl::RC_HANDLE_ALREADY_EXIST, Cul::Handles::Hdl::RC_HANDLE_NOT_FOUND, Cul::Handles::Hdl::RC_INVALID_CREDENTIAL, Cul::Handles::Hdl::RC_INVALID_HANDLE, Cul::Handles::Hdl::RC_NA_DELEGATE, Cul::Handles::Hdl::RC_NOT_AUTHORIZED, Cul::Handles::Hdl::RC_NO_SESSION_KEY, Cul::Handles::Hdl::RC_OPERATION_DENIED, Cul::Handles::Hdl::RC_PROTOCOL_ERROR, Cul::Handles::Hdl::RC_QUEUED, Cul::Handles::Hdl::RC_RECUR_LIMIT_EXCEEDED, Cul::Handles::Hdl::RC_RESERVED, Cul::Handles::Hdl::RC_SERVER_BUSY, Cul::Handles::Hdl::RC_SERVER_NOT_RESP, Cul::Handles::Hdl::RC_SERVICE_REFERRAL, Cul::Handles::Hdl::RC_SESSION_FAILED, Cul::Handles::Hdl::RC_SESSION_KEY_INVALID, Cul::Handles::Hdl::RC_SESSION_NO_SUPPORT, Cul::Handles::Hdl::RC_SESSION_TIMEOUT, Cul::Handles::Hdl::RC_SUCCESS, Cul::Handles::Hdl::RC_TRYING, Cul::Handles::Hdl::RC_UNABLE_TO_AUTHEN, Cul::Handles::Hdl::RC_VALUE_ALREADY_EXIST, Cul::Handles::Hdl::RC_VALUE_INVALID, Cul::Handles::Hdl::RC_VALUE_NOT_FOUND

Instance Method Summary collapse

Methods inherited from BaseRequest

#body, #bodyLength, #credential, #credentialDigestAlg, #credentialOptions, #credentialReserved, #credentialSigner, #credentialType, #credentialVersion, #digest, #encodeCredential, #envelope, #expirationTime, #expirationTime=, #header, #messageFlag, #messageFlag=, #messageLength, #opCode, #opCode=, #opFlag, #opFlag=, #packet, #recursionCount, #recursionCount=, #requestId, #requestId=, #responseCode, #responseCode=, #sequenceNumber, #sequenceNumber=, #sessionId, #sessionId=, #siteInfoSerial, #siteInfoSerial=, #valid?

Methods inherited from BaseMessage

#authoritative, #authoritative=, #cacheCertify, #cacheCertify=, #certify, #certify=, #continuous, #continuous=, #digestAlg=, #encrypt, #encrypt=, #keepAlive, #keepAlive=, #publicOnly, #publicOnly=, #recursive, #recursive=, #returnRequestDigest, #returnRequestDigest=

Methods included from Hdl

#asBytes, #calculateValueLen, #convert16t8, #decodeAdminData, #encodeAdminData, #fromBytes, #readByteArray, #readIntArray, #readProtocolString, #toProtocolString

Constructor Details

#initialize(handle) ⇒ HandleValueRequest

Returns a new instance of HandleValueRequest.



5
6
7
8
9
10
11
12
13
# File 'lib/cul/handles/handle_value_request.rb', line 5

def initialize(handle)
  super()
  self.responseCode = 0
  self.certify=true
  self.authoritative=true
  self.returnRequestDigest=(true)
  @handle = toProtocolString(handle)
  @values = []
end

Instance Method Details

#addAdminValue(adminHandle, permissions, index = INDEX_ADMIN_HANDLE) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/cul/handles/handle_value_request.rb', line 22

def addAdminValue(adminHandle, permissions, index=INDEX_ADMIN_HANDLE)
  value = HandleValue.new()
  value.data=value.encodeAdminData(adminHandle, permissions, INDEX_AUTH)
  value.type = "HS_ADMIN".unpack('U*')
  value.index = asBytes(index) # is this a default?
  @values.push(value)
end

#addSecretKeyValue(secret) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/cul/handles/handle_value_request.rb', line 29

def addSecretKeyValue(secret)
  value = HandleValue.new()
  value.data=secret.unpack('U*')

  value.type="HS_SECKEY".unpack('U*')
  value.perm=(ADMIN_ONLY)
  value.index = asBytes(INDEX_AUTH)
  @values.push(value)
end

#addURLValue(urlValue) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/cul/handles/handle_value_request.rb', line 14

def addURLValue(urlValue)
  # serialize handle value
  value = HandleValue.new()
  value.data = urlValue.unpack('U*')
  value.type = "URL".unpack('U*')
  value.index = asBytes(1) # is this a default?
  @values.push(value)
end

#encodeBodyObject



38
39
40
41
42
43
44
45
46
# File 'lib/cul/handles/handle_value_request.rb', line 38

def encodeBody
  result = [].concat(@handle)
  result.concat(asBytes(@values.length))
  @values.each {|value|
    #puts value.serialize.join unless value.nil?
    result.concat(value.serialize)
  }
  @body = result
end