cddl 0.8.22 → 0.8.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/cddl.gemspec +1 -1
- data/lib/cddl.rb +11 -7
- data/test-data/homenet-de.cddl +12 -0
- data/test-data/homenet-fe.cddl +12 -0
- data/test-data/lint1.cddl +9 -0
- data/test-data/non-empty.cddl +5 -0
- data/test-data/plus.cddl +3 -0
- data/test-data/sipos.cddl +8 -0
- data/test-data/star-edited.cddl +98 -0
- data/test-data/star.cddl +95 -0
- data/test-data/time.cddl +11 -0
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 900cef2acf86b7e14cd7c6b534b590862452c75b79c8244126dab0a2a91dc809
|
4
|
+
data.tar.gz: 6107b03e4c7ac8f7cdedde604a1ae84198d0709b3147674775998d17d3ead00e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4daecf273c14c8f3be89fbbe0a02522c7d53509adc25aeca23b2466387b10506503e8d8b7d23647d9eecaacc4fac154a8ca859bc54294599fc775e581bfa7eb2
|
7
|
+
data.tar.gz: 8d7cf1307dcad944255ef2c83bfda804c88b250145b3ae949954fb865412bf61edd3e0e24e76729a554e92da93a86406c1b6a7e275c99b81bdd06743dca823a9
|
data/cddl.gemspec
CHANGED
data/lib/cddl.rb
CHANGED
@@ -780,13 +780,17 @@ module CDDL
|
|
780
780
|
puts "COMPLEX: #{k.inspect} #{simple.inspect} #{simpleval.inspect}" if ENV["CDDL_TRACE"]
|
781
781
|
keys = d_check.keys
|
782
782
|
ta, keys = keys.partition{ |key| validate1(key, k)}
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
783
|
+
count = 0
|
784
|
+
catch :enough do
|
785
|
+
ta.all? { |val|
|
786
|
+
if (ann2 = validate1a(d[val], v)) && # XXX check cut or not!
|
787
|
+
d_check.delete(val) {:not_found} != :not_found
|
788
|
+
anno.concat(ann2)
|
789
|
+
throw :enough, true if (count += 1) == e
|
790
|
+
true
|
791
|
+
end
|
792
|
+
}
|
793
|
+
end and count >= s # XXX save error indication
|
790
794
|
end
|
791
795
|
end
|
792
796
|
else
|
@@ -0,0 +1,12 @@
|
|
1
|
+
hna-configuration = {
|
2
|
+
"registred_domain" : tstr,
|
3
|
+
"dm" : tstr,
|
4
|
+
? "dm_transport" : "53" // "DoT" // "DoH" // "DoQ"
|
5
|
+
? "dm_port" : uint,
|
6
|
+
? "dm_acl" : hna-acl // [ +hna-acl ]
|
7
|
+
? "hna_auth_method": hna-auth-method
|
8
|
+
? "hna_certificate": tstr
|
9
|
+
}
|
10
|
+
|
11
|
+
hna-acl = tstr
|
12
|
+
hna-auth-method /= "certificate"
|
@@ -0,0 +1,12 @@
|
|
1
|
+
hna-configuration = {
|
2
|
+
"registered_domain" : tstr,
|
3
|
+
"dm" : tstr,
|
4
|
+
? "dm_transport" : "53" / "DoT" / "DoH" / "DoQ"
|
5
|
+
? "dm_port" : uint,
|
6
|
+
? "dm_acl" : hna-acl / [ +hna-acl ]
|
7
|
+
? "hna_auth_method": hna-auth-method
|
8
|
+
? "hna_certificate": tstr
|
9
|
+
}
|
10
|
+
|
11
|
+
hna-acl = tstr
|
12
|
+
hna-auth-method /= "certificate"
|
data/test-data/plus.cddl
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
csr-template-schema = {
|
2
|
+
keyTypes: [ 1* $keyType ]
|
3
|
+
? subject: distinguishedName
|
4
|
+
extensions: extensions
|
5
|
+
}
|
6
|
+
|
7
|
+
mandatory-wildcard = "**"
|
8
|
+
optional-wildcard = "*"
|
9
|
+
wildcard = mandatory-wildcard / optional-wildcard
|
10
|
+
|
11
|
+
; non-empty = { + any => any }
|
12
|
+
non-empty<M> = (M) .and ({ + any => any })
|
13
|
+
|
14
|
+
; regtext matches all text strings but "*" and "**"
|
15
|
+
regtext = text .regexp "([^\*].*)|([\*][^\*].*)|([\*][\*].+)"
|
16
|
+
|
17
|
+
regtext-or-wildcard = regtext / wildcard
|
18
|
+
|
19
|
+
distinguishedName = non-empty<{
|
20
|
+
? country: regtext-or-wildcard
|
21
|
+
? stateOrProvince: regtext-or-wildcard
|
22
|
+
? locality: regtext-or-wildcard
|
23
|
+
? organization: regtext-or-wildcard
|
24
|
+
? organizationalUnit: regtext-or-wildcard
|
25
|
+
? emailAddress: regtext-or-wildcard
|
26
|
+
? commonName: regtext-or-wildcard
|
27
|
+
}>
|
28
|
+
|
29
|
+
$keyType /= rsaKeyType
|
30
|
+
$keyType /= ecdsaKeyType
|
31
|
+
|
32
|
+
rsaKeyType = {
|
33
|
+
PublicKeyType: "rsaEncryption" ; OID: 1.2.840.113549.1.1.1
|
34
|
+
PublicKeyLength: rsaKeySize
|
35
|
+
SignatureType: $rsaSignatureType
|
36
|
+
}
|
37
|
+
|
38
|
+
rsaKeySize = int .ge 2048
|
39
|
+
|
40
|
+
; RSASSA-PKCS1-v1_5 with SHA-256
|
41
|
+
$rsaSignatureType /= "sha256WithRSAEncryption"
|
42
|
+
; RSASSA-PCKS1-v1_5 with SHA-384
|
43
|
+
$rsaSignatureType /= "sha384WithRSAEncryption"
|
44
|
+
; RSASSA-PCKS1-v1_5 with SHA-512
|
45
|
+
$rsaSignatureType /= "sha512WithRSAEncryption"
|
46
|
+
; RSASSA-PSS with SHA-256, MGF-1 with SHA-256, and a 32 byte salt
|
47
|
+
$rsaSignatureType /= "sha256WithRSAandMGF1"
|
48
|
+
; RSASSA-PSS with SHA-384, MGF-1 with SHA-384, and a 48 byte salt
|
49
|
+
$rsaSignatureType /= "sha384WithRSAandMGF1"
|
50
|
+
; RSASSA-PSS with SHA-512, MGF-1 with SHA-512, and a 64 byte salt
|
51
|
+
$rsaSignatureType /= "sha512WithRSAandMGF1"
|
52
|
+
|
53
|
+
ecdsaKeyType = {
|
54
|
+
PublicKeyType: "id-ecPublicKey" ; OID: 1.2.840.10045.2.1
|
55
|
+
namedCurve: $ecdsaCurve
|
56
|
+
SignatureType: $ecdsaSignatureType
|
57
|
+
}
|
58
|
+
|
59
|
+
$ecdsaCurve /= "secp256r1" ; OID: 1.2.840.10045.3.1.7
|
60
|
+
$ecdsaCurve /= "secp384r1" ; OID: 1.3.132.0.34
|
61
|
+
$ecdsaCurve /= "secp521r1" ; OID: 1.3.132.0.3
|
62
|
+
|
63
|
+
$ecdsaSignatureType /= "ecdsa-with-SHA256" ; paired with secp256r1
|
64
|
+
$ecdsaSignatureType /= "ecdsa-with-SHA384" ; paired with secp384r1
|
65
|
+
$ecdsaSignatureType /= "ecdsa-with-SHA512" ; paired with secp521r1
|
66
|
+
|
67
|
+
subjectaltname = {
|
68
|
+
? DNS: [ 1* regtext-or-wildcard ]
|
69
|
+
? Email: [ 1* regtext ]
|
70
|
+
? URI: [ 1* regtext ]
|
71
|
+
* $$subjectaltname-extension
|
72
|
+
}
|
73
|
+
|
74
|
+
extensions = {
|
75
|
+
? keyUsage: [ 1* keyUsageType ]
|
76
|
+
? extendedKeyUsage: [ 1* extendedKeyUsageType ]
|
77
|
+
subjectAltName: subjectaltname
|
78
|
+
}
|
79
|
+
|
80
|
+
keyUsageType /= "digitalSignature"
|
81
|
+
keyUsageType /= "nonRepudiation"
|
82
|
+
keyUsageType /= "keyEncipherment"
|
83
|
+
keyUsageType /= "dataEncipherment"
|
84
|
+
keyUsageType /= "keyAgreement"
|
85
|
+
keyUsageType /= "keyCertSign"
|
86
|
+
keyUsageType /= "cRLSign"
|
87
|
+
keyUsageType /= "encipherOnly"
|
88
|
+
keyUsageType /= "decipherOnly"
|
89
|
+
|
90
|
+
extendedKeyUsageType /= "serverAuth"
|
91
|
+
extendedKeyUsageType /= "clientAuth"
|
92
|
+
extendedKeyUsageType /= "codeSigning"
|
93
|
+
extendedKeyUsageType /= "emailProtection"
|
94
|
+
extendedKeyUsageType /= "timeStamping"
|
95
|
+
extendedKeyUsageType /= "OCSPSigning"
|
96
|
+
extendedKeyUsageType /= oid
|
97
|
+
|
98
|
+
oid = text .regexp "[0-9]+(\\.[0-9]+)*"
|
data/test-data/star.cddl
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
csr-template-schema = {
|
2
|
+
keyTypes: [ 1* $keyType ]
|
3
|
+
? subject: distinguishedName
|
4
|
+
extensions: extensions
|
5
|
+
}
|
6
|
+
|
7
|
+
mandatory-wildcard = "**"
|
8
|
+
optional-wildcard = "*"
|
9
|
+
wildcard = mandatory-wildcard / optional-wildcard
|
10
|
+
|
11
|
+
; regtext matches all text strings but "*" and "**"
|
12
|
+
regtext = text .regexp "([^\*].*)|([\*][^\*].*)|([\*][\*].+)"
|
13
|
+
|
14
|
+
regtext-or-wildcard = regtext / wildcard
|
15
|
+
|
16
|
+
distinguishedName = {
|
17
|
+
? country: regtext-or-wildcard
|
18
|
+
? stateOrProvince: regtext-or-wildcard
|
19
|
+
? locality: regtext-or-wildcard
|
20
|
+
? organization: regtext-or-wildcard
|
21
|
+
? organizationalUnit: regtext-or-wildcard
|
22
|
+
? emailAddress: regtext-or-wildcard
|
23
|
+
? commonName: regtext-or-wildcard
|
24
|
+
}
|
25
|
+
|
26
|
+
$keyType /= rsaKeyType
|
27
|
+
$keyType /= ecdsaKeyType
|
28
|
+
|
29
|
+
rsaKeyType = {
|
30
|
+
PublicKeyType: "rsaEncryption" ; OID: 1.2.840.113549.1.1.1
|
31
|
+
PublicKeyLength: rsaKeySize
|
32
|
+
SignatureType: $rsaSignatureType
|
33
|
+
}
|
34
|
+
|
35
|
+
rsaKeySize = int .ge 2048
|
36
|
+
|
37
|
+
; RSASSA-PKCS1-v1_5 with SHA-256
|
38
|
+
$rsaSignatureType /= "sha256WithRSAEncryption"
|
39
|
+
; RSASSA-PCKS1-v1_5 with SHA-384
|
40
|
+
$rsaSignatureType /= "sha384WithRSAEncryption"
|
41
|
+
; RSASSA-PCKS1-v1_5 with SHA-512
|
42
|
+
$rsaSignatureType /= "sha512WithRSAEncryption"
|
43
|
+
; RSASSA-PSS with SHA-256, MGF-1 with SHA-256, and a 32 byte salt
|
44
|
+
$rsaSignatureType /= "sha256WithRSAandMGF1"
|
45
|
+
; RSASSA-PSS with SHA-384, MGF-1 with SHA-384, and a 48 byte salt
|
46
|
+
$rsaSignatureType /= "sha384WithRSAandMGF1"
|
47
|
+
; RSASSA-PSS with SHA-512, MGF-1 with SHA-512, and a 64 byte salt
|
48
|
+
$rsaSignatureType /= "sha512WithRSAandMGF1"
|
49
|
+
|
50
|
+
ecdsaKeyType = {
|
51
|
+
PublicKeyType: "id-ecPublicKey" ; OID: 1.2.840.10045.2.1
|
52
|
+
namedCurve: $ecdsaCurve
|
53
|
+
SignatureType: $ecdsaSignatureType
|
54
|
+
}
|
55
|
+
|
56
|
+
$ecdsaCurve /= "secp256r1" ; OID: 1.2.840.10045.3.1.7
|
57
|
+
$ecdsaCurve /= "secp384r1" ; OID: 1.3.132.0.34
|
58
|
+
$ecdsaCurve /= "secp521r1" ; OID: 1.3.132.0.3
|
59
|
+
|
60
|
+
$ecdsaSignatureType /= "ecdsa-with-SHA256" ; paired with secp256r1
|
61
|
+
$ecdsaSignatureType /= "ecdsa-with-SHA384" ; paired with secp384r1
|
62
|
+
$ecdsaSignatureType /= "ecdsa-with-SHA512" ; paired with secp521r1
|
63
|
+
|
64
|
+
subjectaltname = {
|
65
|
+
? DNS: [ 1* regtext-or-wildcard ]
|
66
|
+
? Email: [ 1* regtext ]
|
67
|
+
? URI: [ 1* regtext ]
|
68
|
+
* $$subjectaltname-extension
|
69
|
+
}
|
70
|
+
|
71
|
+
extensions = {
|
72
|
+
? keyUsage: [ 1* keyUsageType ]
|
73
|
+
? extendedKeyUsage: [ 1* extendedKeyUsageType ]
|
74
|
+
subjectAltName: subjectaltname
|
75
|
+
}
|
76
|
+
|
77
|
+
keyUsageType /= "digitalSignature"
|
78
|
+
keyUsageType /= "nonRepudiation"
|
79
|
+
keyUsageType /= "keyEncipherment"
|
80
|
+
keyUsageType /= "dataEncipherment"
|
81
|
+
keyUsageType /= "keyAgreement"
|
82
|
+
keyUsageType /= "keyCertSign"
|
83
|
+
keyUsageType /= "cRLSign"
|
84
|
+
keyUsageType /= "encipherOnly"
|
85
|
+
keyUsageType /= "decipherOnly"
|
86
|
+
|
87
|
+
extendedKeyUsageType /= "serverAuth"
|
88
|
+
extendedKeyUsageType /= "clientAuth"
|
89
|
+
extendedKeyUsageType /= "codeSigning"
|
90
|
+
extendedKeyUsageType /= "emailProtection"
|
91
|
+
extendedKeyUsageType /= "timeStamping"
|
92
|
+
extendedKeyUsageType /= "OCSPSigning"
|
93
|
+
extendedKeyUsageType /= oid
|
94
|
+
|
95
|
+
oid = text .regexp "[0-9]+(\\.[0-9]+)*"
|
data/test-data/time.cddl
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cddl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Carsten Bormann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cbor-diag
|
@@ -145,6 +145,8 @@ files:
|
|
145
145
|
- test-data/grasp-09.cddl
|
146
146
|
- test-data/grasp-v1.cddl
|
147
147
|
- test-data/grasp-v2X.cddl
|
148
|
+
- test-data/homenet-de.cddl
|
149
|
+
- test-data/homenet-fe.cddl
|
148
150
|
- test-data/ifmap-base-2.0v17.cddl
|
149
151
|
- test-data/ifmap-base-2.2v9_fh-cabo.cddl
|
150
152
|
- test-data/ifmap-metadata-2.2v9_fh-cabo.cddl
|
@@ -154,6 +156,7 @@ files:
|
|
154
156
|
- test-data/jim-cut.cddl
|
155
157
|
- test-data/jsoniodef.cddl
|
156
158
|
- test-data/kevin5.cddl
|
159
|
+
- test-data/lint1.cddl
|
157
160
|
- test-data/map-group.cddl
|
158
161
|
- test-data/mapkey.cddl
|
159
162
|
- test-data/mdl-ble.cddl
|
@@ -167,14 +170,20 @@ files:
|
|
167
170
|
- test-data/mon-val.cddl
|
168
171
|
- test-data/multipart-ct.cddl
|
169
172
|
- test-data/named-group.cddl
|
173
|
+
- test-data/non-empty.cddl
|
170
174
|
- test-data/oid.cddl
|
171
175
|
- test-data/oidbat.cddl
|
172
176
|
- test-data/patch1.cddl
|
177
|
+
- test-data/plus.cddl
|
173
178
|
- test-data/reused_named_group.cddl
|
174
179
|
- test-data/sasl.cddl
|
175
180
|
- test-data/sequence.cddl
|
181
|
+
- test-data/sipos.cddl
|
182
|
+
- test-data/star-edited.cddl
|
183
|
+
- test-data/star.cddl
|
176
184
|
- test-data/structure.cddl
|
177
185
|
- test-data/test-gen.cddl
|
186
|
+
- test-data/time.cddl
|
178
187
|
- test-data/toerless0.cddl
|
179
188
|
- test-data/toerless1.cddl
|
180
189
|
- test-data/two_anonymous_groups.cddl
|