JavaScript generic ASN.1 parser (mirror)
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add very basic PKCS#1 support and RSA key examples.

+585 -3
+1
defs.js
··· 127 127 Defs.commonTypes = [ 128 128 [ 'X.509 certificate', '1.3.6.1.5.5.7.0.18', 'Certificate' ], 129 129 [ 'CMS / PKCS#7 envelope', '1.2.840.113549.1.9.16.0.14', 'ContentInfo' ], 130 + [ 'PKCS#1 RSA private key', '1.2.840.113549.1.1.0.1', 'RSAPrivateKey' ], 130 131 [ 'PKCS#8 encrypted private key', '1.2.840.113549.1.8.1.1', 'EncryptedPrivateKeyInfo' ], 131 132 [ 'PKCS#8 private key', '1.2.840.113549.1.8.1.1', 'PrivateKeyInfo' ], 132 133 [ 'PKCS#10 certification request', '1.2.840.113549.1.10.1.1', 'CertificationRequest' ],
+18
examples/pkcs1.pem
··· 1 + PKCS#1 RSA key 2 + $ openssl genrsa -out examples/pkcs8-rsa.pem 1024 3 + $ openssl rsa -in examples/pkcs8-rsa.pem -out examples/pkcs1.pem -traditional 4 + -----BEGIN RSA PRIVATE KEY----- 5 + MIICXQIBAAKBgQCmy23ifN9pi5LO4MR3LUhU0v+LZmv78H+jd+R6kFcWZf1qW4yf 6 + KTDkryjjLlIhYqxmzXCqGyaIjj7uJoorWf7KfkxpOuJrh4swJ/WGhCn9i+voW/7T 7 + sOXfDp1yqrEhaQKwdPot1ZAB78TNsecwX/SODTEMCk95jvx1j5cDxPlskwIDAQAB 8 + AoGBAINn4bp+BsVwYMj768y4sDOjyBBbMNfcMbLn0el9rh7HW09fsPnzycFg/iV9 9 + aNdEle6oDAr4OPN8nbeiRVjCHijEnVdHCwAtkKODyuu1ghpZWD0VUC8AEskjX4Bs 10 + Ysl/HjyvvHIRj89gdDFoElgB4GzHKTzeZNJBM5qtUW57zBCBAkEA0A6N5l98MglL 11 + cypWKM7+3DXteWt86mKXYUVF33HY28Z+oUVlU0v8m8XxpoAjkicYnC1JOSSlvWRk 12 + EWlTMgHW5QJBAM06yIHMR6p3apgpwOUp49DbtaQ8NmhCV4NBoFHa+vT2Fk8twOcq 13 + O9OzP4svhKbPNfB4HnxGbmd/+OVT3lySxhcCQHRPPpqD1K0wLwKxrzrfBPDcIOaY 14 + 5VsuRIw3KqmQPngWTiIf5lYbi5sVnFLFHZ2Nx58/XcjZKOJopdxp8f1ps9UCQQC3 15 + rOqSsF9bg3DVKllHQAxyepDAolsXSHjGMk/nspJz9mLVDl/dBAFzYLN4QFj6ae0e 16 + gILYOrjIzNHXfQ4/z+SVAkBPebkAzpGFgzVzu6VOGx0Vft/ow3/DKNJSDM58yASp 17 + ootY2TdibrrV/ellNLvuTiku6AEM/8jbHlRsmfxRe0xn 18 + -----END RSA PRIVATE KEY-----
+18
examples/pkcs8-rsa.pem
··· 1 + PKCS#8 RSA key 2 + $ openssl genrsa -out examples/pkcs8-rsa.pem 1024 3 + -----BEGIN PRIVATE KEY----- 4 + MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKbLbeJ832mLks7g 5 + xHctSFTS/4tma/vwf6N35HqQVxZl/WpbjJ8pMOSvKOMuUiFirGbNcKobJoiOPu4m 6 + iitZ/sp+TGk64muHizAn9YaEKf2L6+hb/tOw5d8OnXKqsSFpArB0+i3VkAHvxM2x 7 + 5zBf9I4NMQwKT3mO/HWPlwPE+WyTAgMBAAECgYEAg2fhun4GxXBgyPvrzLiwM6PI 8 + EFsw19wxsufR6X2uHsdbT1+w+fPJwWD+JX1o10SV7qgMCvg483ydt6JFWMIeKMSd 9 + V0cLAC2Qo4PK67WCGllYPRVQLwASySNfgGxiyX8ePK+8chGPz2B0MWgSWAHgbMcp 10 + PN5k0kEzmq1RbnvMEIECQQDQDo3mX3wyCUtzKlYozv7cNe15a3zqYpdhRUXfcdjb 11 + xn6hRWVTS/ybxfGmgCOSJxicLUk5JKW9ZGQRaVMyAdblAkEAzTrIgcxHqndqmCnA 12 + 5Snj0Nu1pDw2aEJXg0GgUdr69PYWTy3A5yo707M/iy+Eps818HgefEZuZ3/45VPe 13 + XJLGFwJAdE8+moPUrTAvArGvOt8E8Nwg5pjlWy5EjDcqqZA+eBZOIh/mVhuLmxWc 14 + UsUdnY3Hnz9dyNko4mil3Gnx/Wmz1QJBALes6pKwX1uDcNUqWUdADHJ6kMCiWxdI 15 + eMYyT+eyknP2YtUOX90EAXNgs3hAWPpp7R6Agtg6uMjM0dd9Dj/P5JUCQE95uQDO 16 + kYWDNXO7pU4bHRV+3+jDf8Mo0lIMznzIBKmii1jZN2JuutX96WU0u+5OKS7oAQz/ 17 + yNseVGyZ/FF7TGc= 18 + -----END PRIVATE KEY-----
+2
index.html
··· 46 46 <option value="sig-rsa1024-sha1.p7s">PKCS#7/CMS detached signature (old)</option> 47 47 <option value="letsencrypt-x3.cer">X.509 certificate: Let's Encrypt X3</option> 48 48 <option value="ed25519.cer">X.509 certificate: ed25519 (RFC 8410)</option> 49 + <option value="pkcs1.pem">PKCS#1 RSA key (RFC 8017)</option> 50 + <option value="pkcs8-rsa.pem">PKCS#8 RSA key (RFC 5208)</option> 49 51 <option value="pkcs10.pem">PKCS#10 certification request (RFC 2986)</option> 50 52 <option value="cmpv2.b64">CMP PKI message (RFC 4210)</option> 51 53 </select>
+15 -1
parseRFC.js
··· 45 45 4210: [ 46 46 [ /^\s+-- .*\r?\n/mg, '' ], // comments 47 47 ], 48 + 8017: [ // this RFC uses a lot of currently unsupported syntax 49 + [ /ALGORITHM-IDENTIFIER ::= CLASS[^-]+--/, '--' ], 50 + [ /\n +\S+ +ALGORITHM-IDENTIFIER[^\n]+(\n [^\n]+)+\n [}]/g, '' ], 51 + [ /AlgorithmIdentifier [{] ALGORITHM-IDENTIFIER:InfoObjectSet [}] ::=(\n [^\n]+)+\n [}]/, 'AlgorithmIdentifier ::= ANY'], 52 + [ /algorithm +id-[^,\n]+,/g, 'algorithm ANY,' ], 53 + [ / (sha1 HashAlgorithm|mgf1SHA1 MaskGenAlgorithm|pSpecifiedEmpty PSourceAlgorithm|rSAES-OAEP-Default-Identifier RSAES-AlgorithmIdentifier|rSASSA-PSS-Default-Identifier RSASSA-AlgorithmIdentifier) ::= [{](\n( [^\n]+)?)+\n [}]/g, '' ], 54 + [ / ::= AlgorithmIdentifier [{]\s+[{][^}]+[}]\s+[}]/g, ' ::= AlgorithmIdentifier' ], 55 + [ /OCTET STRING[(]SIZE[(]0..MAX[)][)]/g, 'OCTET STRING' ], 56 + [ /emptyString EncodingParameters ::= ''H/g, '' ], 57 + [ /[(]CONSTRAINED BY[^)]+[)]/g, '' ], 58 + ], 48 59 }; 49 60 50 61 // const reWhitespace = /(?:\s|--(?:[}-]?[^\n}-])*(?:\n|--))*/y; ··· 349 360 } else { 350 361 if (id in currentMod.values) // defined in local module 351 362 val = currentMod.values[id].value; 352 - else 363 + else try { 353 364 val = searchImportedValue(id); 365 + } catch (e) { 366 + this.exception(e.message); 367 + } 354 368 } 355 369 } 356 370 if (v.length) v += '.';
+530 -1
rfcdef.js
··· 1 - // content parsed from ASN.1 definitions as found in the following RFCs: 5280 5208 3369 3161 2986 4211 4210 1 + // content parsed from ASN.1 definitions as found in the following RFCs: 5280 5208 3369 3161 2986 4211 4210 8017 2 2 // Copyright (C) The IETF Trust (2008) 3 3 // as far as I can tell this file is allowed under the following clause: 4 4 // It is acceptable under the current IETF rules (RFC 5378) to modify extracted code if necessary. ··· 9858 9858 ] 9859 9859 } 9860 9860 ] 9861 + } 9862 + } 9863 + } 9864 + }, 9865 + "1.2.840.113549.1.1.0.1": { 9866 + "name": "PKCS-1", 9867 + "oid": "1.2.840.113549.1.1.0.1", 9868 + "source": "rfc8017.txt", 9869 + "tagDefault": "EXPLICIT", 9870 + "imports": { 9871 + "2.16.840.1.101.3.4.2": { 9872 + "name": "NIST-SHA2", 9873 + "oid": "2.16.840.1.101.3.4.2", 9874 + "types": [ 9875 + "id-sha224", 9876 + "id-sha256", 9877 + "id-sha384", 9878 + "id-sha512", 9879 + "id-sha512-224", 9880 + "id-sha512-256" 9881 + ] 9882 + } 9883 + }, 9884 + "values": { 9885 + "pkcs-1": { 9886 + "name": "pkcs-1", 9887 + "type": { 9888 + "name": "OBJECT IDENTIFIER", 9889 + "type": "builtin" 9890 + }, 9891 + "value": "1.2.840.113549.1.1" 9892 + }, 9893 + "rsaEncryption": { 9894 + "name": "rsaEncryption", 9895 + "type": { 9896 + "name": "OBJECT IDENTIFIER", 9897 + "type": "builtin" 9898 + }, 9899 + "value": "1.2.840.113549.1.1.1" 9900 + }, 9901 + "id-RSAES-OAEP": { 9902 + "name": "id-RSAES-OAEP", 9903 + "type": { 9904 + "name": "OBJECT IDENTIFIER", 9905 + "type": "builtin" 9906 + }, 9907 + "value": "1.2.840.113549.1.1.7" 9908 + }, 9909 + "id-pSpecified": { 9910 + "name": "id-pSpecified", 9911 + "type": { 9912 + "name": "OBJECT IDENTIFIER", 9913 + "type": "builtin" 9914 + }, 9915 + "value": "1.2.840.113549.1.1.9" 9916 + }, 9917 + "id-RSASSA-PSS": { 9918 + "name": "id-RSASSA-PSS", 9919 + "type": { 9920 + "name": "OBJECT IDENTIFIER", 9921 + "type": "builtin" 9922 + }, 9923 + "value": "1.2.840.113549.1.1.10" 9924 + }, 9925 + "md2WithRSAEncryption": { 9926 + "name": "md2WithRSAEncryption", 9927 + "type": { 9928 + "name": "OBJECT IDENTIFIER", 9929 + "type": "builtin" 9930 + }, 9931 + "value": "1.2.840.113549.1.1.2" 9932 + }, 9933 + "md5WithRSAEncryption": { 9934 + "name": "md5WithRSAEncryption", 9935 + "type": { 9936 + "name": "OBJECT IDENTIFIER", 9937 + "type": "builtin" 9938 + }, 9939 + "value": "1.2.840.113549.1.1.4" 9940 + }, 9941 + "sha1WithRSAEncryption": { 9942 + "name": "sha1WithRSAEncryption", 9943 + "type": { 9944 + "name": "OBJECT IDENTIFIER", 9945 + "type": "builtin" 9946 + }, 9947 + "value": "1.2.840.113549.1.1.5" 9948 + }, 9949 + "sha224WithRSAEncryption": { 9950 + "name": "sha224WithRSAEncryption", 9951 + "type": { 9952 + "name": "OBJECT IDENTIFIER", 9953 + "type": "builtin" 9954 + }, 9955 + "value": "1.2.840.113549.1.1.14" 9956 + }, 9957 + "sha256WithRSAEncryption": { 9958 + "name": "sha256WithRSAEncryption", 9959 + "type": { 9960 + "name": "OBJECT IDENTIFIER", 9961 + "type": "builtin" 9962 + }, 9963 + "value": "1.2.840.113549.1.1.11" 9964 + }, 9965 + "sha384WithRSAEncryption": { 9966 + "name": "sha384WithRSAEncryption", 9967 + "type": { 9968 + "name": "OBJECT IDENTIFIER", 9969 + "type": "builtin" 9970 + }, 9971 + "value": "1.2.840.113549.1.1.12" 9972 + }, 9973 + "sha512WithRSAEncryption": { 9974 + "name": "sha512WithRSAEncryption", 9975 + "type": { 9976 + "name": "OBJECT IDENTIFIER", 9977 + "type": "builtin" 9978 + }, 9979 + "value": "1.2.840.113549.1.1.13" 9980 + }, 9981 + "sha512-224WithRSAEncryption": { 9982 + "name": "sha512-224WithRSAEncryption", 9983 + "type": { 9984 + "name": "OBJECT IDENTIFIER", 9985 + "type": "builtin" 9986 + }, 9987 + "value": "1.2.840.113549.1.1.15" 9988 + }, 9989 + "sha512-256WithRSAEncryption": { 9990 + "name": "sha512-256WithRSAEncryption", 9991 + "type": { 9992 + "name": "OBJECT IDENTIFIER", 9993 + "type": "builtin" 9994 + }, 9995 + "value": "1.2.840.113549.1.1.16" 9996 + }, 9997 + "id-sha1": { 9998 + "name": "id-sha1", 9999 + "type": { 10000 + "name": "OBJECT IDENTIFIER", 10001 + "type": "builtin" 10002 + }, 10003 + "value": "1.3.14.3.2.26" 10004 + }, 10005 + "id-md2": { 10006 + "name": "id-md2", 10007 + "type": { 10008 + "name": "OBJECT IDENTIFIER", 10009 + "type": "builtin" 10010 + }, 10011 + "value": "1.2.840.113549.2.2" 10012 + }, 10013 + "id-md5": { 10014 + "name": "id-md5", 10015 + "type": { 10016 + "name": "OBJECT IDENTIFIER", 10017 + "type": "builtin" 10018 + }, 10019 + "value": "1.2.840.113549.2.5" 10020 + }, 10021 + "id-mgf1": { 10022 + "name": "id-mgf1", 10023 + "type": { 10024 + "name": "OBJECT IDENTIFIER", 10025 + "type": "builtin" 10026 + }, 10027 + "value": "1.2.840.113549.1.1.8" 10028 + } 10029 + }, 10030 + "types": { 10031 + "AlgorithmIdentifier": { 10032 + "name": "AlgorithmIdentifier", 10033 + "type": { 10034 + "name": "ANY", 10035 + "type": "builtin" 10036 + } 10037 + }, 10038 + "HashAlgorithm": { 10039 + "name": "HashAlgorithm", 10040 + "type": { 10041 + "name": "AlgorithmIdentifier", 10042 + "type": "defined" 10043 + } 10044 + }, 10045 + "SHA1Parameters": { 10046 + "name": "SHA1Parameters", 10047 + "type": { 10048 + "name": "NULL", 10049 + "type": "defined" 10050 + } 10051 + }, 10052 + "MaskGenAlgorithm": { 10053 + "name": "MaskGenAlgorithm", 10054 + "type": { 10055 + "name": "AlgorithmIdentifier", 10056 + "type": "defined" 10057 + } 10058 + }, 10059 + "EncodingParameters": { 10060 + "name": "EncodingParameters", 10061 + "type": { 10062 + "name": "OCTET STRING", 10063 + "type": "builtin" 10064 + } 10065 + }, 10066 + "PSourceAlgorithm": { 10067 + "name": "PSourceAlgorithm", 10068 + "type": { 10069 + "name": "AlgorithmIdentifier", 10070 + "type": "defined" 10071 + } 10072 + }, 10073 + "RSAPublicKey": { 10074 + "name": "RSAPublicKey", 10075 + "type": { 10076 + "name": "SEQUENCE", 10077 + "type": "builtin", 10078 + "content": [ 10079 + { 10080 + "id": "modulus", 10081 + "name": "INTEGER", 10082 + "type": "builtin" 10083 + }, 10084 + { 10085 + "id": "publicExponent", 10086 + "name": "INTEGER", 10087 + "type": "builtin" 10088 + } 10089 + ] 10090 + } 10091 + }, 10092 + "RSAPrivateKey": { 10093 + "name": "RSAPrivateKey", 10094 + "type": { 10095 + "name": "SEQUENCE", 10096 + "type": "builtin", 10097 + "content": [ 10098 + { 10099 + "id": "version", 10100 + "name": "Version", 10101 + "type": "defined" 10102 + }, 10103 + { 10104 + "id": "modulus", 10105 + "name": "INTEGER", 10106 + "type": "builtin" 10107 + }, 10108 + { 10109 + "id": "publicExponent", 10110 + "name": "INTEGER", 10111 + "type": "builtin" 10112 + }, 10113 + { 10114 + "id": "privateExponent", 10115 + "name": "INTEGER", 10116 + "type": "builtin" 10117 + }, 10118 + { 10119 + "id": "prime1", 10120 + "name": "INTEGER", 10121 + "type": "builtin" 10122 + }, 10123 + { 10124 + "id": "prime2", 10125 + "name": "INTEGER", 10126 + "type": "builtin" 10127 + }, 10128 + { 10129 + "id": "exponent1", 10130 + "name": "INTEGER", 10131 + "type": "builtin" 10132 + }, 10133 + { 10134 + "id": "exponent2", 10135 + "name": "INTEGER", 10136 + "type": "builtin" 10137 + }, 10138 + { 10139 + "id": "coefficient", 10140 + "name": "INTEGER", 10141 + "type": "builtin" 10142 + }, 10143 + { 10144 + "id": "otherPrimeInfos", 10145 + "name": "OtherPrimeInfos", 10146 + "type": "defined", 10147 + "optional": true 10148 + } 10149 + ] 10150 + } 10151 + }, 10152 + "Version": { 10153 + "name": "Version", 10154 + "type": { 10155 + "name": "INTEGER", 10156 + "type": "builtin", 10157 + "content": { 10158 + "two-prime": 0, 10159 + "multi": 1 10160 + } 10161 + } 10162 + }, 10163 + "OtherPrimeInfos": { 10164 + "name": "OtherPrimeInfos", 10165 + "type": { 10166 + "name": "SEQUENCE", 10167 + "type": "builtin", 10168 + "typeOf": 1, 10169 + "size": [ 10170 + 1, 10171 + "MAX" 10172 + ], 10173 + "content": [ 10174 + { 10175 + "name": "OtherPrimeInfo", 10176 + "type": "defined" 10177 + } 10178 + ] 10179 + } 10180 + }, 10181 + "OtherPrimeInfo": { 10182 + "name": "OtherPrimeInfo", 10183 + "type": { 10184 + "name": "SEQUENCE", 10185 + "type": "builtin", 10186 + "content": [ 10187 + { 10188 + "id": "prime", 10189 + "name": "INTEGER", 10190 + "type": "builtin" 10191 + }, 10192 + { 10193 + "id": "exponent", 10194 + "name": "INTEGER", 10195 + "type": "builtin" 10196 + }, 10197 + { 10198 + "id": "coefficient", 10199 + "name": "INTEGER", 10200 + "type": "builtin" 10201 + } 10202 + ] 10203 + } 10204 + }, 10205 + "RSAES-OAEP-params": { 10206 + "name": "RSAES-OAEP-params", 10207 + "type": { 10208 + "name": "SEQUENCE", 10209 + "type": "builtin", 10210 + "content": [ 10211 + { 10212 + "id": "hashAlgorithm", 10213 + "name": "[0]", 10214 + "type": "tag", 10215 + "class": "CONTEXT", 10216 + "explicit": true, 10217 + "content": [ 10218 + { 10219 + "name": "", 10220 + "type": { 10221 + "name": "HashAlgorithm", 10222 + "type": "defined" 10223 + } 10224 + } 10225 + ], 10226 + "default": "sha1" 10227 + }, 10228 + { 10229 + "id": "maskGenAlgorithm", 10230 + "name": "[1]", 10231 + "type": "tag", 10232 + "class": "CONTEXT", 10233 + "explicit": true, 10234 + "content": [ 10235 + { 10236 + "name": "", 10237 + "type": { 10238 + "name": "MaskGenAlgorithm", 10239 + "type": "defined" 10240 + } 10241 + } 10242 + ], 10243 + "default": "mgf1SHA1" 10244 + }, 10245 + { 10246 + "id": "pSourceAlgorithm", 10247 + "name": "[2]", 10248 + "type": "tag", 10249 + "class": "CONTEXT", 10250 + "explicit": true, 10251 + "content": [ 10252 + { 10253 + "name": "", 10254 + "type": { 10255 + "name": "PSourceAlgorithm", 10256 + "type": "defined" 10257 + } 10258 + } 10259 + ], 10260 + "default": "pSpecifiedEmpty" 10261 + } 10262 + ] 10263 + } 10264 + }, 10265 + "RSAES-AlgorithmIdentifier": { 10266 + "name": "RSAES-AlgorithmIdentifier", 10267 + "type": { 10268 + "name": "AlgorithmIdentifier", 10269 + "type": "defined" 10270 + } 10271 + }, 10272 + "RSASSA-PSS-params": { 10273 + "name": "RSASSA-PSS-params", 10274 + "type": { 10275 + "name": "SEQUENCE", 10276 + "type": "builtin", 10277 + "content": [ 10278 + { 10279 + "id": "hashAlgorithm", 10280 + "name": "[0]", 10281 + "type": "tag", 10282 + "class": "CONTEXT", 10283 + "explicit": true, 10284 + "content": [ 10285 + { 10286 + "name": "", 10287 + "type": { 10288 + "name": "HashAlgorithm", 10289 + "type": "defined" 10290 + } 10291 + } 10292 + ], 10293 + "default": "sha1" 10294 + }, 10295 + { 10296 + "id": "maskGenAlgorithm", 10297 + "name": "[1]", 10298 + "type": "tag", 10299 + "class": "CONTEXT", 10300 + "explicit": true, 10301 + "content": [ 10302 + { 10303 + "name": "", 10304 + "type": { 10305 + "name": "MaskGenAlgorithm", 10306 + "type": "defined" 10307 + } 10308 + } 10309 + ], 10310 + "default": "mgf1SHA1" 10311 + }, 10312 + { 10313 + "id": "saltLength", 10314 + "name": "[2]", 10315 + "type": "tag", 10316 + "class": "CONTEXT", 10317 + "explicit": true, 10318 + "content": [ 10319 + { 10320 + "name": "", 10321 + "type": { 10322 + "name": "INTEGER", 10323 + "type": "builtin" 10324 + } 10325 + } 10326 + ], 10327 + "default": 20 10328 + }, 10329 + { 10330 + "id": "trailerField", 10331 + "name": "[3]", 10332 + "type": "tag", 10333 + "class": "CONTEXT", 10334 + "explicit": true, 10335 + "content": [ 10336 + { 10337 + "name": "", 10338 + "type": { 10339 + "name": "TrailerField", 10340 + "type": "defined" 10341 + } 10342 + } 10343 + ], 10344 + "default": "trailerFieldBC" 10345 + } 10346 + ] 10347 + } 10348 + }, 10349 + "TrailerField": { 10350 + "name": "TrailerField", 10351 + "type": { 10352 + "name": "INTEGER", 10353 + "type": "builtin", 10354 + "content": { 10355 + "trailerFieldBC": 1 10356 + } 10357 + } 10358 + }, 10359 + "RSASSA-AlgorithmIdentifier": { 10360 + "name": "RSASSA-AlgorithmIdentifier", 10361 + "type": { 10362 + "name": "AlgorithmIdentifier", 10363 + "type": "defined" 10364 + } 10365 + }, 10366 + "DigestInfo": { 10367 + "name": "DigestInfo", 10368 + "type": { 10369 + "name": "SEQUENCE", 10370 + "type": "builtin", 10371 + "content": [ 10372 + { 10373 + "id": "digestAlgorithm", 10374 + "name": "DigestAlgorithm", 10375 + "type": "defined" 10376 + }, 10377 + { 10378 + "id": "digest", 10379 + "name": "OCTET STRING", 10380 + "type": "builtin" 10381 + } 10382 + ] 10383 + } 10384 + }, 10385 + "DigestAlgorithm": { 10386 + "name": "DigestAlgorithm", 10387 + "type": { 10388 + "name": "AlgorithmIdentifier", 10389 + "type": "defined" 9861 10390 } 9862 10391 } 9863 10392 }
+1 -1
updateRFC.sh
··· 1 1 #/bin/sh 2 - RFCs="5280 5208 3369 3161 2986 4211 4210" 2 + RFCs="5280 5208 3369 3161 2986 4211 4210 8017" 3 3 downloadRFC() { 4 4 URL="https://www.ietf.org/rfc/rfc$1.txt" 5 5 if [ -x /usr/bin/fetch ]; then