Class: Cul::Handles::ChallengeAnswerRequest

Inherits:
BaseRequest show all
Includes:
Hdl
Defined in:
lib/cul/handles/challenge_answer_request.rb

Constant Summary

Constants included from Hdl

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

Instance Method Summary collapse

Methods included from Hdl

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

Methods inherited from BaseRequest

#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=

Constructor Details

#initialize(nonce, digest, keyHandle, keyIndex) ⇒ ChallengeAnswerRequest

Returns a new instance of ChallengeAnswerRequest.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/cul/handles/challenge_answer_request.rb', line 5

def initialize(nonce,digest,keyHandle, keyIndex)
  super()
  @nonce = nonce
  @digest =digest
  @opCode = asBytes(OC_CHALLENGE_RESPONSE)
  @authenticationType = toProtocolString("HS_SECKEY")
  @keyHandle = toProtocolString(keyHandle)
  @keyIndex = asBytes(keyIndex)
  @challengeResponse = []
  @secret = []
  self.responseCode = 0
  self.authoritative=false
  self.returnRequestDigest=false
  self.encrypt=false
  self.publicOnly=false
  self.certify=false
  self.cacheCertify=true
  self.recursive=true
  self.continuous=false
  self.keepAlive=false
  self.expirationTime=0
end

Instance Method Details

#bodyObject



27
28
29
# File 'lib/cul/handles/challenge_answer_request.rb', line 27

def body()
  @body
end

#encodeBodyObject



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/cul/handles/challenge_answer_request.rb', line 33

def encodeBody()
  digest = Digest::SHA1.new()
  digest.update(@secret)
  digest.update(@nonce.pack('C*'))
  digest.update(@digest.pack('C*'))
  digest.update(@secret)
  prehash = digest.digest()
  @challengeResponse = [0x02].concat(prehash.unpack('C*'))
  @challengeResponse = asBytes(@challengeResponse.length).concat(@challengeResponse)
  @body = [].concat(@authenticationType).concat(@keyHandle).concat(@keyIndex).concat(@challengeResponse)
end

#secret=(val) ⇒ Object



30
31
32
# File 'lib/cul/handles/challenge_answer_request.rb', line 30

def secret=(val)
  @secret = val.unpack('U*').pack('C*')
end