Skip to content

Commit 2e41df0

Browse files
committed
FEAT: added a few more names into OID decoder...
... and using more optimal chars instead of single byte binaries
1 parent ad49c44 commit 2e41df0

File tree

1 file changed

+70
-47
lines changed

1 file changed

+70
-47
lines changed

src/mezz/codec-der.r

+70-47
Original file line numberDiff line numberDiff line change
@@ -198,94 +198,117 @@ register-codec [
198198
][
199199
parse/all oid [
200200
#{2B0E0302} (main: "Oddball OIW OID") [
201-
#{1A} (name: 'sha1)
202-
#{1D} (name: 'sha1WithRSAEncryption)
201+
;http://oid-info.com/get/1.3.14.3.2
202+
#"^(01)" (name: 'rsa)
203+
| #"^(02)" (name: 'md4WitRSA)
204+
| #"^(03)" (name: 'md5WithRSA)
205+
| #"^(04)" (name: 'md4WithRSAEncryption)
206+
| #"^(06)" (name: 'desECB)
207+
| #"^(07)" (name: 'desCBC)
208+
| #"^(0B)" (name: 'rsaSignature)
209+
| #"^(1A)" (name: 'sha1)
210+
| #"^(1D)" (name: 'sha1WithRSAEncryption)
203211
]
204212
|
205213
#{2B060105050701} (main: "PKIX private extension") [
206-
#{01} (name: 'authorityInfoAccess)
214+
#"^(01)" (name: 'authorityInfoAccess)
207215
]
208216
|
209217
#{2B060105050730} (main: "PKIX") [
210218
;- access descriptor definitions
211-
#{01} (name: 'ocsp) ; Online Certificate Status Protocol
212-
#{02} (name: 'caIssuers) ; Certificate authority issuers
213-
#{03} (name: 'timeStamping)
214-
#{05} (name: 'caRepository)
219+
#"^(01)" (name: 'ocsp) ; Online Certificate Status Protocol
220+
| #"^(02)" (name: 'caIssuers) ; Certificate authority issuers
221+
| #"^(03)" (name: 'timeStamping)
222+
| #"^(05)" (name: 'caRepository)
215223
]
216224
|
217225
#{2A8648CE3D} (main: "X9.62") [
218226
#{0201} (name: 'ecPublicKey)
219227
| #{0301} [
220-
#{07} (name: 'secp256r1)
221-
;| #{02} (name: 'prime192v2)
222-
;| #{03} (name: 'prime192v3)
223-
| #{01} (name: 'secp192r1)
228+
#"^(07)" (name: 'secp256r1)
229+
;| #"^(02)" (name: 'prime192v2)
230+
;| #"^(03)" (name: 'prime192v3)
231+
| #"^(01)" (name: 'secp192r1)
224232
]
225233
]
226234
|
227235
#{2A864886F70D01} [
228236
#{01} (main: "PKCS #1") [
229-
#{01} (name: 'rsaEncryption)
230-
| #{02} (name: 'md2WithRSAEncryption)
231-
| #{03} (name: 'md4withRSAEncryption)
232-
| #{04} (name: 'md5withRSAEncryption)
233-
| #{05} (name: 'sha1WithRSAEncrption)
234-
| #{0B} (name: 'sha256WithRSAEncryption)
237+
#"^(01)" (name: 'rsaEncryption)
238+
| #"^(02)" (name: 'md2WithRSAEncryption)
239+
| #"^(03)" (name: 'md4withRSAEncryption)
240+
| #"^(04)" (name: 'md5withRSAEncryption)
241+
| #"^(05)" (name: 'sha1WithRSAEncrption)
242+
| #"^(0B)" (name: 'sha256WithRSAEncryption)
235243

236244
] end
237245
|
238246
#{07} (main: "PKCS #7") [
239-
#{01} (name: 'data)
240-
| #{02} (name: 'signedData)
241-
| #{06} (name: 'encryptedData)
247+
#"^(01)" (name: 'data)
248+
| #"^(02)" (name: 'signedData)
249+
| #"^(06)" (name: 'encryptedData)
242250
] end
243251
|
244252
#{09} (main: "PKCS #9") [
245-
#{01} (name: 'emailAddress warn: "Deprecated, use an altName extension instead")
246-
| #{14} (name: 'friendlyName)
247-
| #{15} (name: 'localKeyID)
253+
;http://oid-info.com/get/1.2.840.113549.1.9
254+
#"^(01)" (name: 'emailAddress warn: "Deprecated, use an altName extension instead")
255+
| #"^(03)" (name: 'contentType)
256+
| #"^(04)" (name: 'messageDigest)
257+
| #"^(05)" (name: 'signingTime)
258+
| #"^(0F)" (name: 'smimeCapabilities)
259+
| #"^(14)" (name: 'friendlyName)
260+
| #"^(15)" (name: 'localKeyID)
261+
| #"^(34)" (name: 'CMSAlgorithmProtect)
248262
] end
249263
|
250264
#{0C} (main: "PKCS #12") [
251-
#{0106} (name: 'pbeWithSHAAnd40BitRC2-CBC)
252-
| #{0103} (name: 'pbeWithSHAAnd3-KeyTripleDES-CBC)
265+
#{0106} (name: 'pbeWithSHAAnd40BitRC2-CBC)
266+
| #{0103} (name: 'pbeWithSHAAnd3-KeyTripleDES-CBC)
253267
| #{0A0102} (name: 'pkcs-12-pkcs-8ShroudedKeyBag)
254268
] end
255269
] end
256270
|
271+
#{2A864886F70D03} (main: "Encryption algorithm") [
272+
;http://oid-info.com/get/1.2.840.113549.3
273+
#"^(02)" (name: "rc2CBC")
274+
| #"^(03)" (name: "rc2ECB")
275+
| #"^(04)" (name: "rc4")
276+
| #"^(07)" (name: "des-ede3-cbc")
277+
] end
278+
|
279+
257280
#{5504} (main: "X.520 DN component") [
258-
#{03} (name: 'commonName)
259-
| #{06} (name: 'countryName)
260-
| #{07} (name: 'localityName)
261-
| #{08} (name: 'stateOrProvinceName)
262-
| #{0A} (name: 'organizationName)
263-
| #{0B} (name: 'organizationalUnitName)
264-
| #{0D} (name: 'description)
265-
| #{0F} (name: 'businessCategory)
281+
#"^(03)" (name: 'commonName)
282+
| #"^(06)" (name: 'countryName)
283+
| #"^(07)" (name: 'localityName)
284+
| #"^(08)" (name: 'stateOrProvinceName)
285+
| #"^(0A)" (name: 'organizationName)
286+
| #"^(0B)" (name: 'organizationalUnitName)
287+
| #"^(0D)" (name: 'description)
288+
| #"^(0F)" (name: 'businessCategory)
266289
] end
267290
|
268291
#{551D} (main: "X.509 extension") [
269-
#{01} (name: 'authorityKeyIdentifier warn: "Deprecated, use 2 5 29 35 instead")
270-
| #{04} (name: 'keyUsageRestriction warn: "Obsolete, use keyUsage/extKeyUsage instead")
271-
| #{0E} (name: 'subjectKeyIdentifier)
272-
| #{0F} (name: 'keyUsage)
273-
| #{11} (name: 'subjectAltName)
274-
| #{13} (name: 'basicConstraints)
275-
| #{1F} (name: 'cRLDistributionPoints)
276-
| #{20} (name: 'certificatePolicies)
277-
| #{23} (name: 'authorityKeyIdentifier)
278-
| #{25} (name: 'extKeyUsage)
292+
#"^(01)" (name: 'authorityKeyIdentifier warn: "Deprecated, use 2 5 29 35 instead")
293+
| #"^(04)" (name: 'keyUsageRestriction warn: "Obsolete, use keyUsage/extKeyUsage instead")
294+
| #"^(0E)" (name: 'subjectKeyIdentifier)
295+
| #"^(0F)" (name: 'keyUsage)
296+
| #"^(11)" (name: 'subjectAltName)
297+
| #"^(13)" (name: 'basicConstraints)
298+
| #"^(1F)" (name: 'cRLDistributionPoints)
299+
| #"^(20)" (name: 'certificatePolicies)
300+
| #"^(23)" (name: 'authorityKeyIdentifier)
301+
| #"^(25)" (name: 'extKeyUsage)
279302
] end
280303
|
281304
#{2B060105050703} (main: "PKIX key purpose") [
282-
#{01} (name: 'serverAuth)
283-
#{02} (name: 'clientAuth)
284-
| #{03} (name: 'codeSigning)
305+
#"^(01)" (name: 'serverAuth)
306+
#"^(02)" (name: 'clientAuth)
307+
| #"^(03)" (name: 'codeSigning)
285308
] end
286309
|
287310
#{2B0601040182370201} (main: "Microsoft") [
288-
#{15} (name: 'individualCodeSigning)
311+
#"^(15)" (name: 'individualCodeSigning)
289312
] end
290313
]
291314
;?? main

0 commit comments

Comments
 (0)