Skip to content

Commit 34c0c78

Browse files
feat: Wrote dictionaries for DER related things (certificates and CSR's)
Signed-off-by: ethan-thompson <ethan.thompson@networkradius.com>
1 parent 05d8a04 commit 34c0c78

File tree

6 files changed

+422
-0
lines changed

6 files changed

+422
-0
lines changed

share/dictionary/der/dictionary

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# -*- text -*-
2+
# Copyright (C) 2025 The FreeRADIUS Server project and contributors
3+
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
4+
# Version $Id$
5+
#
6+
# The FreeRADIUS Vendor-Specific dictionary for TLS operations.
7+
#
8+
# Version: $Id$
9+
#
10+
BEGIN PROTOCOL DER 11354911
11+
12+
$INCLUDE dictionary.common
13+
$INCLUDE dictionary.oids
14+
$INCLUDE dictionary.rfc2986
15+
$INCLUDE dictionary.rfc5280
16+
17+
END-PROTOCOL DER
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# -*- text -*-
2+
# Copyright (C) 2025 The FreeRADIUS Server project and contributors
3+
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
4+
# Version $Id$
5+
DEFINE GeneralName choice
6+
BEGIN GeneralName
7+
8+
ATTRIBUTE otherName 0 sequence option=0
9+
BEGIN otherName
10+
DEFINE type-id string subtype=oid
11+
DEFINE Value-thing tlv subtype=sequence,class=context-specific,tagnum=0
12+
BEGIN Value-thing
13+
DEFINE userPrincipalName string subtype=utf8string
14+
END Value-thing
15+
END otherName
16+
17+
ATTRIBUTE rfc822Name 1 ia5string option=1
18+
ATTRIBUTE dNSName 2 ia5string option=2
19+
20+
ATTRIBUTE directoryName 4 sequence option=4
21+
BEGIN directoryName
22+
DEFINE RDNSequence sequence sequence_of=set
23+
BEGIN RDNSequence
24+
DEFINE RelativeDistinguishedName set
25+
BEGIN RelativeDistinguishedName
26+
DEFINE AttributeTypeAndValue group ref=OID-Tree,is_pair
27+
END RelativeDistinguishedName
28+
END RDNSequence
29+
END directoryName
30+
31+
ATTRIBUTE uniformResourceIdentifier 6 ia5string option=6
32+
33+
END GeneralName
34+
35+
DEFINE DirectoryName choice
36+
BEGIN DirectoryName
37+
ATTRIBUTE printableString 19 printablestring
38+
ATTRIBUTE universalString 28 universalstring
39+
ATTRIBUTE utf8String 12 utf8string
40+
END DirectoryName
41+
42+
DEFINE GeneralSubtree sequence
43+
BEGIN GeneralSubtree
44+
DEFINE base sequence clone=GeneralName
45+
DEFINE minimum integer option=0,has_default
46+
VALUE minimum DEFAULT 0
47+
DEFINE maximum integer option=1
48+
END GeneralSubtree
49+
50+
DEFINE Name sequence
51+
BEGIN Name
52+
DEFINE RDNSequence sequence sequence_of=set
53+
BEGIN RDNSequence
54+
DEFINE RelativeDistinguishedName set
55+
BEGIN RelativeDistinguishedName
56+
DEFINE AttributeTypeAndValue group ref=OID-Tree,is_pair
57+
END RelativeDistinguishedName
58+
END RDNSequence
59+
END Name
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# -*- text -*-
2+
# Copyright (C) 2025 The FreeRADIUS Server project and contributors
3+
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
4+
# Version $Id$
5+
DEFINE Critical group ref=OID-Tree
6+
7+
ATTRIBUTE authorityInfoAccess 1.3.6.1.5.5.7.1.1 sequence sequence_of=sequence,is_oid_leaf
8+
BEGIN 1.3.6.1.5.5.7.1.1
9+
DEFINE accessDescription sequence
10+
BEGIN accessDescription
11+
DEFINE accessMethod oid
12+
13+
DEFINE accessLocation choice
14+
BEGIN accessLocation
15+
ATTRIBUTE otherName 0 sequence option=0
16+
BEGIN otherName
17+
DEFINE type-id string subtype=oid
18+
DEFINE Value-thing tlv subtype=sequence,class=context-specific,tagnum=0
19+
BEGIN Value-thing
20+
DEFINE userPrincipalName string subtype=utf8string
21+
END Value-thing
22+
END otherName
23+
24+
ATTRIBUTE rfc822Name 1 ia5string option=1
25+
ATTRIBUTE dNSName 2 ia5string option=2
26+
27+
ATTRIBUTE uniformResourceIdentifier 6 ia5string option=6
28+
END accessLocation
29+
30+
END accessDescription
31+
END 1.3.6.1.5.5.7.1.1
32+
33+
ATTRIBUTE subjectInfoAccess 1.3.6.1.5.5.7.1.11 sequence sequence_of=sequence,is_oid_leaf
34+
BEGIN 1.3.6.1.5.5.7.1.11
35+
DEFINE accessDescription sequence
36+
BEGIN accessDescription
37+
DEFINE accessMethod oid
38+
39+
DEFINE accessLocation choice
40+
BEGIN accessLocation
41+
ATTRIBUTE otherName 0 sequence option=0
42+
BEGIN otherName
43+
DEFINE type-id string subtype=oid
44+
DEFINE Value-thing tlv subtype=sequence,class=context-specific,tagnum=0
45+
BEGIN Value-thing
46+
DEFINE userPrincipalName string subtype=utf8string
47+
END Value-thing
48+
END otherName
49+
50+
ATTRIBUTE rfc822Name 1 ia5string option=1
51+
ATTRIBUTE dNSName 2 ia5string option=2
52+
53+
ATTRIBUTE uniformResourceIdentifier 6 ia5string option=6
54+
END accessLocation
55+
56+
END accessDescription
57+
END 1.3.6.1.5.5.7.1.11
58+
59+
ATTRIBUTE subjectKeyIdentifier 2.5.29.14 octetstring is_oid_leaf
60+
61+
ATTRIBUTE keyUsage 2.5.29.15 struct subtype=bitstring,is_oid_leaf
62+
BEGIN 2.5.29.15
63+
MEMBER digitalSignature bit[1]
64+
MEMBER nonRepudation bit[1]
65+
MEMBER keyEncipherment bit[1]
66+
MEMBER dataEncipherment bit[1]
67+
MEMBER keyAgreement bit[1]
68+
MEMBER keyCertSign bit[1]
69+
MEMBER cRLSign bit[1]
70+
MEMBER encipherOnly bit[1]
71+
MEMBER decipherOnly bit[1]
72+
MEMBER unused_bits bit[7]
73+
END 2.5.29.15
74+
75+
ATTRIBUTE subjectAltName 2.5.29.17 group ref=GeneralName,subtype=sequence,sequence_of=choice,is_oid_leaf
76+
77+
ATTRIBUTE basicConstraints 2.5.29.19 sequence is_oid_leaf
78+
BEGIN 2.5.29.19
79+
DEFINE cA boolean has_default
80+
VALUE cA DEFAULT false
81+
DEFINE pathLenConstraint integer
82+
END 2.5.29.19
83+
84+
ATTRIBUTE nameConstraints 2.5.29.30 sequence is_oid_leaf
85+
BEGIN 2.5.29.30
86+
DEFINE permittedSubtrees group ref=GeneralSubtree,sequence_of=sequence,option=0
87+
DEFINE excludedSubtrees group ref=GeneralSubtree,sequence_of=sequence,option=1
88+
END 2.5.29.30
89+
90+
ATTRIBUTE cRLDIstributionPoints 2.5.29.31 sequence sequence_of=sequence,is_oid_leaf
91+
BEGIN 2.5.29.31
92+
DEFINE distributionPoint sequence
93+
BEGIN distributionPoint
94+
DEFINE distributionPointName sequence option=0
95+
BEGIN distributionPointName
96+
ATTRIBUTE fullName 0 group ref=GeneralName,subtype=sequence,sequence_of=choice,option=0
97+
ATTRIBUTE nameRelativeToCRLIssuer 1 sequence option=1
98+
BEGIN nameRelativeToCRLIssuer
99+
DEFINE RelativeDistinguishedName tlv subtype=set
100+
BEGIN RelativeDistinguishedName
101+
DEFINE AttributeTypeandValue group ref=OID-Tree,is_pair
102+
END RelativeDistinguishedName
103+
END nameRelativeToCRLIssuer
104+
END distributionPointName
105+
106+
DEFINE reasons struct option=1
107+
BEGIN reasons
108+
MEMBER unused bit[1]
109+
MEMBER keyCompromise bit[1]
110+
MEMBER cACompromise bit[1]
111+
MEMBER affiliationChanged bit[1]
112+
MEMBER superseded bit[1]
113+
MEMBER cessationOfOperation bit[1]
114+
MEMBER certificateHold bit[1]
115+
MEMBER privilegeWithdrawn bit[1]
116+
MEMBER aACompromise bit[1]
117+
END reasons
118+
119+
DEFINE cRLIssuer group ref=GeneralName,subtype=sequence,sequence_of=choice,option=2
120+
121+
END distributionPoint
122+
END 2.5.29.31
123+
124+
ATTRIBUTE certificatePolicies 2.5.29.32 sequence sequence_of=sequence,is_oid_leaf
125+
BEGIN 2.5.29.32
126+
DEFINE policyInformation sequence
127+
BEGIN policyInformation
128+
DEFINE policyIdentifier oid
129+
130+
DEFINE policyQualifiers sequence sequence_of=sequence
131+
BEGIN policyQualifiers
132+
DEFINE policyQualifierInfo group ref=OID-Tree,is_pair
133+
END policyQualifiers
134+
135+
END policyInformation
136+
END 2.5.29.32
137+
138+
ATTRIBUTE policyMappings 2.5.29.33 sequence is_oid_leaf
139+
BEGIN 2.5.29.33
140+
DEFINE issuerDomainPolicy oid
141+
DEFINE subjectDomainPolicy oid
142+
END 2.5.29.33
143+
144+
ATTRIBUTE authorityKeyIdentifier 2.5.29.35 sequence sequence_of=choice,is_oid_leaf
145+
BEGIN 2.5.29.35
146+
ATTRIBUTE keyIdentifier 0 octetstring option=0
147+
ATTRIBUTE authorityCertIssuer 1 group ref=GeneralName,subtype=sequence,sequence_of=choice,option=1
148+
ATTRIBUTE authorityCertSerialNumber 2 octetstring option=2
149+
END 2.5.29.35
150+
151+
ATTRIBUTE policyConstraints 2.5.29.36 sequence is_oid_leaf
152+
BEGIN 2.5.29.36
153+
DEFINE requireExplicitPolicy octetstring option=0
154+
DEFINE inhibitPolicyMapping octetstring option=1
155+
END 2.5.29.36
156+
157+
ATTRIBUTE extKeyUsage 2.5.29.37 sequence sequence_of=oid,is_oid_leaf
158+
#DEFINE extKeyUsageSyntax sequence
159+
BEGIN 2.5.29.37
160+
DEFINE keyPurposeId oid
161+
END 2.5.29.37
162+
163+
ATTRIBUTE freshestCRL 2.5.29.46 sequence sequence_of=sequence,is_oid_leaf
164+
DEFINE distributionPoint sequence
165+
BEGIN distributionPoint
166+
DEFINE distributionPointName sequence option=0
167+
BEGIN distributionPointName
168+
ATTRIBUTE fullName 0 group ref=GeneralName,subtype=sequence,sequence_of=choice,option=0
169+
ATTRIBUTE nameRelativeToCRLIssuer 1 sequence option=1
170+
BEGIN nameRelativeToCRLIssuer
171+
DEFINE RelativeDistinguishedName tlv subtype=set
172+
BEGIN RelativeDistinguishedName
173+
DEFINE AttributeTypeandValue group ref=OID-Tree,is_pair
174+
END RelativeDistinguishedName
175+
END nameRelativeToCRLIssuer
176+
END distributionPointName
177+
178+
DEFINE reasons struct option=1
179+
BEGIN reasons
180+
MEMBER unused bit[1]
181+
MEMBER keyCompromise bit[1]
182+
MEMBER cACompromise bit[1]
183+
MEMBER affiliationChanged bit[1]
184+
MEMBER superseded bit[1]
185+
MEMBER cessationOfOperation bit[1]
186+
MEMBER certificateHold bit[1]
187+
MEMBER privilegeWithdrawn bit[1]
188+
MEMBER aACompromise bit[1]
189+
END reasons
190+
191+
DEFINE cRLIssuer group ref=GeneralName,subtype=sequence,sequence_of=choice,option=2
192+
193+
END distributionPoint
194+
195+
ATTRIBUTE inhibitAnyPolicy 2.5.29.54 integer is_oid_leaf
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# -*- text -*-
2+
# Copyright (C) 2025 The FreeRADIUS Server project and contributors
3+
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
4+
# Version $Id$
5+
DEFINE OID-Tree tlv
6+
BEGIN OID-Tree
7+
ATTRIBUTE iso 1 tlv
8+
ATTRIBUTE member-body 1.2 tlv
9+
ATTRIBUTE us 1.2.840 tlv
10+
ATTRIBUTE ansi-x962 1.2.840.10045 tlv
11+
ATTRIBUTE keyType 1.2.840.10045.2 tlv
12+
ATTRIBUTE ecPublicKey 1.2.840.10045.2.1 oid is_oid_leaf
13+
14+
ATTRIBUTE signatures 1.2.840.10045.4 tlv
15+
ATTRIBUTE ecdsa-with-SHA2 1.2.840.10045.4.3 tlv
16+
ATTRIBUTE ecdsa-with-SHA384 1.2.840.10045.4.3.3 bool is_oid_leaf,has_default
17+
VALUE 1.2.840.10045.4.3.3 DEFAULT false
18+
19+
ATTRIBUTE rsadsi 1.2.840.113549 tlv
20+
ATTRIBUTE pkcs 1.2.840.113549.1 tlv
21+
ATTRIBUTE pkcs-1 1.2.840.113549.1.1 tlv
22+
ATTRIBUTE rsaEncryption 1.2.840.113549.1.1.1 bool is_oid_leaf,subtype=null
23+
24+
ATTRIBUTE sha256WithRSAEncryption 1.2.840.113549.1.1.11 bool is_oid_leaf,subtype=null
25+
26+
ATTRIBUTE identified-organization 1.3 tlv
27+
ATTRIBUTE dod 1.3.6 tlv
28+
ATTRIBUTE internet 1.3.6.1 tlv
29+
ATTRIBUTE security 1.3.6.1.5 tlv
30+
ATTRIBUTE mechanisms 1.3.6.1.5.5 tlv
31+
ATTRIBUTE pkix 1.3.6.1.5.5.7 tlv
32+
ATTRIBUTE pe 1.3.6.1.5.5.7.1 tlv
33+
34+
ATTRIBUTE joint-iso-itu-t 2 tlv
35+
ATTRIBUTE ds 2.5 tlv
36+
37+
ATTRIBUTE attributeType 2.5.4 tlv
38+
ATTRIBUTE commonName 2.5.4.3 printablestring is_oid_leaf
39+
ATTRIBUTE countryName 2.5.4.6 string[2] subtype=printablestring,is_oid_leaf
40+
ATTRIBUTE serialNumber 2.5.4.5 printablestring is_oid_leaf
41+
ATTRIBUTE localityName 2.5.4.7 string is_oid_leaf
42+
ATTRIBUTE stateOrProvinceName 2.5.4.8 string is_oid_leaf
43+
ATTRIBUTE organizationName 2.5.4.10 printablestring is_oid_leaf
44+
45+
ATTRIBUTE certificateExtension 2.5.29 tlv
46+
47+
$INCLUDE dictionary.extensions
48+
49+
END OID-Tree
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# -*- text -*-
2+
# Copyright (C) 2025 The FreeRADIUS Server project and contributors
3+
# This work is licensed under CC-BY version 4.0 https://creativecommons.org/licenses/by/4.0
4+
# Version $Id$
5+
DEFINE CertificateRequest tlv
6+
BEGIN CertificateRequest
7+
8+
DEFINE certificationRequestInfo tlv
9+
BEGIN certificationRequestInfo
10+
DEFINE version integer
11+
12+
DEFINE subject tlv
13+
BEGIN subject
14+
DEFINE RelativeDistinguishedName tlv subtype=set
15+
BEGIN RelativeDistinguishedName
16+
DEFINE AttributeTypeandValue tlv
17+
BEGIN AttributeTypeAndValue
18+
DEFINE OID string subtype=oid
19+
DEFINE Value-Thing string subtype=utf8string
20+
END AttributeTypeAndValue
21+
END RelativeDistinguishedName
22+
END subject
23+
24+
DEFINE subjectPublicKeyInfo tlv
25+
BEGIN subjectPublicKeyInfo
26+
DEFINE algorithm tlv
27+
BEGIN algorithm
28+
DEFINE OID string subtype=oid
29+
END algorithm
30+
DEFINE subjectPublicKey octets subtype=bitstring
31+
END subjectPublicKeyInfo
32+
33+
DEFINE Attributes tlv class=context-specific,tagnum=0,subtype=sequence
34+
BEGIN Attributes
35+
DEFINE Attribute-thing tlv
36+
BEGIN Attribute-thing
37+
DEFINE OID string subtype=oid
38+
DEFINE Extensions group ref=OID-Tree,subtype=set,is_extensions
39+
END Attribute-thing
40+
END Attributes
41+
42+
END certificationRequestInfo
43+
44+
DEFINE signatureAlgorithm tlv
45+
BEGIN signatureAlgorithm
46+
DEFINE OID string subtype=oid
47+
END signatureAlgorithm
48+
49+
DEFINE signature octets subtype=bitstring
50+
END CertificateRequest

0 commit comments

Comments
 (0)