Class: Ccrypto::SecretKey

Inherits:
Object
  • Object
show all
Includes:
Java::DataConversion, TeLogger::TeLogHelper
Defined in:
lib/ccrypto/java/ext/secret_key.rb

Instance Method Summary collapse

Methods included from Java::DataConversion

#from_b64, #from_hex, included, #to_b64, #to_b64_mime, #to_hex, #to_java_bytes, #to_str

Instance Method Details

#equals?(key) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/ccrypto/java/ext/secret_key.rb', line 50

def equals?(key)
  case key
  when Ccrypto::SecretKey
    teLogger.debug "Given key is Ccrypto::SecretKey"
    to_jce_secret_key.encoded == key.to_jce_secret_key.encoded
  when javax.crypto.spec.SecretKeySpec
    teLogger.debug "Given key is java SecretKeySpec"
    to_jce_secret_key.encoded == key.encoded
  when ::Java::byte[]
    to_jce_secret_key.encoded == key
  when String
    to_jce_secret_key.encoded == to_java_bytes(key)
  else
    teLogger.debug "Not sure how to compare : #{self} / #{key}"
    to_jce_secret_key == key
  end
end

#lengthObject



39
40
41
42
43
44
45
46
47
48
# File 'lib/ccrypto/java/ext/secret_key.rb', line 39

def length
  case @key
  when javax.crypto.spec.SecretKeySpec
    @key.encoded.length
  when ::Java::byte[]
    @key.length
  else
    @key.key.encoded.length
  end
end

#to_binObject



30
31
32
33
34
35
36
37
# File 'lib/ccrypto/java/ext/secret_key.rb', line 30

def to_bin
  case @key
  when javax.crypto.spec.SecretKeySpec
    @key.encoded
  else
    raise Ccrypto::Error, "Unsupported key type #{@key.class}"
  end
end

#to_jce_secret_keyObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/ccrypto/java/ext/secret_key.rb', line 11

def to_jce_secret_key
  case @key
  when javax.crypto.spec.SecretKeySpec
    @key
  when ::Java::byte[]
    javax.crypto.spec.SecretKeySpec.new(@key, @algo.to_s)

  else
    case @key.key
    when javax.crypto.spec.SecretKeySpec
      @key.key
    when ::Java::byte[]
      javax.crypto.spec.SecretKeySpec.new(@key.key, @algo.to_s)
    else
      raise Ccrypto::Error, "Unknown key to conver to jce #{@key.key}"
    end
  end
end