Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rapid7
GitHub Repository: rapid7/metasploit-framework
Path: blob/master/lib/rex/proto/kerberos/model/pkinit.rb
19715 views
1
# -*- coding: binary -*-
2
require 'rasn1'
3
4
module Rex
5
module Proto
6
module Kerberos
7
module Model
8
# Contains the models for PKINIT-related ASN1 structures
9
# These use the RASN1 library to define the types
10
module Pkinit
11
class DomainParameters < RASN1::Model
12
sequence :domain_parameters,
13
content: [integer(:p),
14
integer(:g),
15
integer(:q),
16
integer(:j, optional: true),
17
#model(:validationParms, ValidationParms) # Not used, so not implemented
18
]
19
end
20
21
class KdcDhKeyInfo < RASN1::Model
22
sequence :kdc_dh_key_info,
23
content: [bit_string(:subject_public_key, explicit: 0, constructed: true),
24
integer(:nonce, implicit: 1, constructed: true),
25
generalized_time(:dh_key_expiration, explicit: 2, constructed: true)
26
]
27
end
28
29
class PkAuthenticator < RASN1::Model
30
sequence :pk_authenticator,
31
explicit: 0, constructed: true,
32
content: [integer(:cusec, constructed: true, explicit: 0),
33
generalized_time(:ctime, constructed: true, explicit: 1),
34
integer(:nonce, constructed: true, explicit: 2),
35
octet_string(:pa_checksum, constructed: true, explicit: 3, optional: true)
36
]
37
end
38
39
class AuthPack < RASN1::Model
40
sequence :auth_pack,
41
content: [model(:pk_authenticator, PkAuthenticator),
42
model(:client_public_value, Rex::Proto::CryptoAsn1::X509::SubjectPublicKeyInfo),
43
octet_string(:client_dh_nonce, implicit: 3, constructed: true, optional: true)
44
]
45
end
46
end
47
end
48
end
49
end
50
end
51
52
53