Class: COSE::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/cose/key.rb,
lib/cose/key/ec2.rb,
lib/cose/key/rsa.rb

Direct Known Subclasses

EC2, RSA

Defined Under Namespace

Classes: EC2, Exception, NotImplementedError, RSA, UknownAlgorithm

Constant Summary collapse

KTY =
1
KID =
2
ALG =
3
OPS =
4
BASE_IV =
5
KTY_OKP =
1
KTY_EC2 =
2
KTY_RSA =
3
KTY_SYMMETRIC =
4

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attrs = {}) ⇒ Key

Returns a new instance of Key.



23
24
25
26
27
28
29
# File 'lib/cose/key.rb', line 23

def initialize(attrs = {})
  self.kty = attrs[KTY]
  self.kid = attrs[KID]
  self.alg = attrs[ALG]
  self.ops = attrs[OPS]
  self.base_iv = attrs[BASE_IV]
end

Instance Attribute Details

#algObject

Returns the value of attribute alg.



21
22
23
# File 'lib/cose/key.rb', line 21

def alg
  @alg
end

#base_ivObject

Returns the value of attribute base_iv.



21
22
23
# File 'lib/cose/key.rb', line 21

def base_iv
  @base_iv
end

#kidObject

Returns the value of attribute kid.



21
22
23
# File 'lib/cose/key.rb', line 21

def kid
  @kid
end

#ktyObject

Returns the value of attribute kty.



21
22
23
# File 'lib/cose/key.rb', line 21

def kty
  @kty
end

#opsObject

Returns the value of attribute ops.



21
22
23
# File 'lib/cose/key.rb', line 21

def ops
  @ops
end

#rawObject

Returns the value of attribute raw.



21
22
23
# File 'lib/cose/key.rb', line 21

def raw
  @raw
end

Class Method Details

.decode(cbor) ⇒ Object



44
45
46
47
48
# File 'lib/cose/key.rb', line 44

def decode(cbor)
  key = detect CBOR.decode(cbor)
  key.raw = cbor
  key
end

.detect(attrs = {}) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/cose/key.rb', line 50

def detect(attrs = {})
  klass = case attrs[KTY]
  when KTY_OKP
    raise NotImplementedError, 'Unsupported Key Type: OKP'
  when KTY_EC2
    EC2
  when KTY_RSA
    RSA
  when KTY_SYMMETRIC
    raise NotImplementedError, 'Unsupported Key Type: Symmetric'
  else
    raise UknownAlgorithm, 'Unknown Key Type'
  end
  klass.new attrs
end

Instance Method Details

#alg_keyObject



31
32
33
# File 'lib/cose/key.rb', line 31

def alg_key
  raise NotImplementedError, 'Implement me'
end

#digestObject



35
36
37
# File 'lib/cose/key.rb', line 35

def digest
  raise NotImplementedError, 'Implement me'
end

#to_keyObject



39
40
41
# File 'lib/cose/key.rb', line 39

def to_key
  raise NotImplementedError, 'Implement me'
end