Module: CcipherFactory::SymKeySigner::SymKeyVerify
- Includes:
- TR::CondUtils
- Defined in:
- lib/ccipher_factory/symkey_cipher/symkey_verify.rb
Instance Attribute Summary collapse
-
#verification_key ⇒ Object
Returns the value of attribute verification_key.
Instance Method Summary collapse
- #logger ⇒ Object
- #verify_final ⇒ Object
- #verify_init(opts = { }, &block) ⇒ Object
- #verify_update_data(val) ⇒ Object
- #verify_update_meta(meta) ⇒ Object
Instance Attribute Details
#verification_key ⇒ Object
Returns the value of attribute verification_key.
10 11 12 |
# File 'lib/ccipher_factory/symkey_cipher/symkey_verify.rb', line 10 def verification_key @verification_key end |
Instance Method Details
#logger ⇒ Object
65 66 67 68 69 70 71 |
# File 'lib/ccipher_factory/symkey_cipher/symkey_verify.rb', line 65 def logger if @logger.nil? @logger = Tlogger.new @logger.tag = :symkey_ver end @logger end |
#verify_final ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/ccipher_factory/symkey_cipher/symkey_verify.rb', line 48 def verify_final sign = @hmac.hmac_final comp = Ccrypto::UtilFactory.instance(:comparator) res = comp.is_equal?(sign, @sign) #res = (sign == @sign) if not res logger.tdebug :symkey_ver, "Generated : #{sign}" logger.tdebug :symkey_ver, "Enveloped : #{@sign}" end res end |
#verify_init(opts = { }, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/ccipher_factory/symkey_cipher/symkey_verify.rb', line 11 def verify_init(opts = { }, &block) if block instance_eval(&block) verify_final else self end end |
#verify_update_data(val) ⇒ Object
44 45 46 |
# File 'lib/ccipher_factory/symkey_cipher/symkey_verify.rb', line 44 def verify_update_data(val) @hmac.hmac_update(val) end |
#verify_update_meta(meta) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ccipher_factory/symkey_cipher/symkey_verify.rb', line 22 def () ts = BinStruct.instance.struct_from_bin() digestAlgo = BTag.value_constant(ts.digest_algo) @sign = ts.signature raise SymKeySignerError, "Verification key must be given" if is_empty?(@verification_key) raise SymKeySignerError, "Symmetric key type is expected" if not @verification_key.is_a?(SymKey) raise SymKeySignerError, "Given digest algo '#{digestAlgo}' is not supported" if not Digest::SupportedDigest.instance.is_supported?(digestAlgo) hconf = Ccrypto::HMACConfig.new hconf.key = Ccrypto::SecretKey.new(@verification_key.keytype, @verification_key.key) hconf.digest = digestAlgo @hmac = Ccrypto::AlgoFactory.engine(hconf) #@hmac = OpenSSL::HMAC.new(@verification_key.key, OpenSSL::Digest.new(Digest.to_digest_string(digestAlgo))) end |