Skip to content

Commit 372147b

Browse files
committed
Add CCM and GCM parameter definitions from RFC5911
1 parent 0f4c73b commit 372147b

File tree

1 file changed

+24
-0
lines changed
  • lib/rex/proto/crypto_asn1

1 file changed

+24
-0
lines changed

lib/rex/proto/crypto_asn1/cms.rb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,35 @@ def parse!(str, ber: false)
4343
end
4444
end
4545

46+
# see: https://datatracker.ietf.org/doc/rfc5911/
47+
class CCMParameters < RASN1::Model
48+
sequence :gcm_parameters,
49+
content: [octet_string(:aes_nonce),
50+
integer(:aes_ccm_icvlen)
51+
]
52+
end
53+
54+
# see: https://datatracker.ietf.org/doc/rfc5911/
55+
class GCMParameters < RASN1::Model
56+
sequence :gcm_parameters,
57+
content: [octet_string(:aes_nonce),
58+
integer(:aes_gcm_icvlen)
59+
]
60+
end
61+
4662
class AlgorithmIdentifier < RASN1::Model
4763
sequence :algorithm_identifier,
4864
content: [objectid(:algorithm),
4965
any(:parameters, optional: true)
5066
]
67+
68+
def ccm_parameters
69+
CCMParameters.parse(self[:parameters].value)
70+
end
71+
72+
def gcm_parameters
73+
GCMParameters.parse(self[:parameters].value)
74+
end
5175
end
5276

5377
class KeyDerivationAlgorithmIdentifier < AlgorithmIdentifier

0 commit comments

Comments
 (0)