@unabandoned/parse-asn1 5.2.0
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.
- package/.githooks/commit-msg +2 -0
- package/.github/FUNDING.yml +12 -0
- package/.github/workflows/ci.yml +13 -0
- package/.github/workflows/codeql.yml +14 -0
- package/.github/workflows/commitlint.yml +8 -0
- package/.github/workflows/publish.yml +16 -0
- package/.github/workflows/release-cut.yml +12 -0
- package/.github/workflows/release-please.yml +11 -0
- package/.github/workflows/release-security.yml +11 -0
- package/.github/workflows/renovate-config.yml +10 -0
- package/.github/workflows/scorecard.yml +14 -0
- package/.release-please-manifest.json +3 -0
- package/.unabandoned.yml +30 -0
- package/CHANGELOG.md +216 -0
- package/LICENSE +13 -0
- package/README.md +15 -0
- package/aesid.json +13 -0
- package/asn1.js +123 -0
- package/certificate.js +89 -0
- package/commitlint.config.js +1 -0
- package/evp-bytes-to-key.js +56 -0
- package/fixProc.js +33 -0
- package/index.js +111 -0
- package/package.json +46 -0
- package/release-please-config.json +24 -0
- package/renovate.json +7 -0
- package/test/1024.priv +16 -0
- package/test/1024.pub +6 -0
- package/test/cert.priv +27 -0
- package/test/cert.pub +20 -0
- package/test/dsa.1024.priv +18 -0
- package/test/dsa.1024.pub +12 -0
- package/test/dsa.2048.priv +20 -0
- package/test/dsa.2048.pub +20 -0
- package/test/ec.pass.priv +7 -0
- package/test/ec.priv +5 -0
- package/test/ec.pub +4 -0
- package/test/index.js +108 -0
- package/test/node.cert +20 -0
- package/test/pass.1024.priv +18 -0
- package/test/pass.1024.pub +6 -0
- package/test/pass.dsa.1024.priv +11 -0
- package/test/pass.dsa.1024.pub +12 -0
- package/test/pass.rsa.1024.priv +18 -0
- package/test/pass.rsa.1024.pub +6 -0
- package/test/pass.rsa.2028.priv +30 -0
- package/test/pass.rsa.2028.pub +9 -0
- package/test/pass2.dsa.1024.priv +15 -0
- package/test/pass2.dsa.1024.pub +12 -0
- package/test/rsa.1024.priv +15 -0
- package/test/rsa.1024.pub +5 -0
- package/test/rsa.2028.priv +27 -0
- package/test/rsa.2028.pub +8 -0
- package/test/tape.js +134 -0
- package/test/vector.js +11 -0
- package/test/vector.priv +12 -0
- package/test/vector2.priv +19 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
-----BEGIN PUBLIC KEY-----
|
|
2
|
+
MIGcMA0GCSqGSIb3DQEBAQUAA4GKADCBhgJ/OwswbFo/uyC8ltGf/yA1A+gV5IGd
|
|
3
|
+
nAgPbUSI3GzbHCA+x+TLG/tLvbRw3r1smppY/jkkpiVW1ErSMuN0uixp5gb78Z9r
|
|
4
|
+
H1XpWb5WWgp3WaY/9EHMjMdOkQ/9LVZvRvl/M/Fi6owP+q+amJI1BEjECYfbhGL3
|
|
5
|
+
rmlVdq4qXc40QwIDAQAB
|
|
6
|
+
-----END PUBLIC KEY-----
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
2
|
+
Proc-Type: 4,ENCRYPTED
|
|
3
|
+
DEK-Info: AES-256-CBC,7A6A055AD675947A657041422F06D439
|
|
4
|
+
|
|
5
|
+
HQdjzAKUuqqKhZHmpzzY/monfqFhiHnZ5c24jtR9fM4aQJXf/e1fz6MEhyIz6XON
|
|
6
|
+
sb4CnXZstnxUuVWDkHEu6KWQ/dKALgiDUuT+UdMawVoVPGdgyWZp35pQPWi3fT2V
|
|
7
|
+
XZn58YkG8bO3Y403eZPyhadOefD1VtuFuK6/f90jjzx6ZDnwveXpYgFV7Jy1/pFd
|
|
8
|
+
cLLMf07C+hbk416nX6UVipWe4GH+ADFom5ZCfAaUotM7n8i149dULNF4YYi2wP31
|
|
9
|
+
1YaDH5vf1CqiaieDY7xLzpEixwJz6ZEg3gLXaUvz2MpF8owiGI3eP0g7voWp3xt4
|
|
10
|
+
TQx/qDURlaXiaRriWdWtpKyW1MFuJ5+KdNtR1/kXr2BLPB/ZLwyqtynUy8ZYpb4+
|
|
11
|
+
WIRYpUGeb//ZHGhlCH7CRMdABsal4wTwnzi9fW4Ax96ecJ2SlwCuKxwS7iEq2y1/
|
|
12
|
+
FAfGwsE+XufHhme5p6XjKfiHx+zJMIB2NMkrm+wm4PbMTrGVnw5/41/r6XxOB8fe
|
|
13
|
+
iKi12Jth4dusc1vYGYfzKop9uEM6CZ6+Chqzb+Zyh/xUiZVlCX/BYnxr7yXUm9aR
|
|
14
|
+
PHQgxkn2Act8FgQB3Kgs3jCiCRIJrlsnybeWzQ3YO9TjC4MxygmmwODDBpsOKnEi
|
|
15
|
+
kXXS54+cZFjcsva4uJVwhAywRPVUkLzmTkH0tGiwCHjeQNECm+TLahkkEIXrVTb9
|
|
16
|
+
c9creNXMgE6jVVz+R43HXsGvTcgMcBLyFRQJe2nVaj/dQ5JbF4uqNnQzRjAbD34K
|
|
17
|
+
uTpFaJ/kmlgcmeScRLnwaoYwFlmhSC+bK0dfY1Jr6AQRA6IDP7nIjqWNDCHNBB8r
|
|
18
|
+
Qj1v2KWoVQe3xNHaXhkbJPbA2DKlUIqffkBVtMKtt9KuG3Rccf3bVYAW6oid73/D
|
|
19
|
+
z7DMAF5G/OpVR8VbGh1WxXuR7zEVDUwpwsp9ek5dqN8BnBz1ppdZNIKqzszneckU
|
|
20
|
+
s2l/6mZBmgV1Nfy/cQU6U5s3S1Xc75UDQVLms3CIOpFTRIpecNTdfa31fYy/svy0
|
|
21
|
+
M2lWTbCva0dOyuvMUhTgBL4I7Qa2dUMPXHMZatV5ooHYq/BZJA1r84C5cM5r+umE
|
|
22
|
+
2LLv/BlUr7RaQHhaKGn4Qhpzo5yRDE9mEqDpLVkbg8SxMsdf/pEF5/VyUwA9t8RT
|
|
23
|
+
fKVsInRd386tDqJSDbSFqKTvLztr/5YCyzZzvC2YB1voko/caOGd2d/G51Ij+bXU
|
|
24
|
+
xEN8U4fHDBsHwPUGb31uZUhTXpL37KiOqZmXFoH2usmuvx882XvyGcV0F4tstMaR
|
|
25
|
+
KLKzl2PwqzAYGFexLkYKMz0TYIeN6h3b86ETazPPU49nkaEU23Dx21J2Rb3UlH+I
|
|
26
|
+
lDQF3wuH1QlYiTnlcVa/Zu4QQg0/iP8ALkZ06mvn9e9mOtnA8gsh4B2oLqc19VLU
|
|
27
|
+
bcpv40dV1H3W9Lcx9B8JYUp0c/Oyno1D7Yj3tjGcwMKECmUpHi4kksehVo0/P933
|
|
28
|
+
xmFmC6eyWYVdO9upvY/vKSB7b1dMt85iWr3gnMsSfRYc6jsbSxdjOPST46UsIzjx
|
|
29
|
+
wa1DS6+Bv5tiaC4uC6X+0tCAZo+UOQMYUbTGRR/7g/c=
|
|
30
|
+
-----END RSA PRIVATE KEY-----
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
-----BEGIN PUBLIC KEY-----
|
|
2
|
+
MIIBHjANBgkqhkiG9w0BAQEFAAOCAQsAMIIBBgKB/gy7mjaWgPeFdVYDZWRCA9BN
|
|
3
|
+
iv3pPb0es27+FKY0hszLaOw47ExCtAWpDsH48TXAfyHBYwBLguayfk4LGIupxb+C
|
|
4
|
+
GMbRo3xEp0CbfY1Jby26T9vGjRC1foHDDUJG84uaRbyHqaf4i6zt4gVR+xlAEIjk
|
|
5
|
+
aFAAK8cOoXAT1CVqGLLljUCchL8PjaHj/yriZ/S7rdwlI3LnABxwwmLrmR/v71Wt
|
|
6
|
+
pmO/aNG8N+1po+QwaghTkyQ59E/ZvAuOkFWHok2q/R6PYAa2jdZ9zim0FqOP+nkQ
|
|
7
|
+
aEDRbBFBmBqTv5fFGfk2WsAfKf/RG0/VFd+ZeM5251TeTvXH695nlSGauVl9AgMB
|
|
8
|
+
AAE=
|
|
9
|
+
-----END PUBLIC KEY-----
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-----BEGIN DSA PRIVATE KEY-----
|
|
2
|
+
Proc-Type: 4,ENCRYPTED
|
|
3
|
+
DEK-Info: AES-128-CBC,DC173C6DFD455EBE462A35D6AB9A603A
|
|
4
|
+
|
|
5
|
+
FoC3sxbdUFJTaNtRpooMxaX2lcQRLUz8qcRhzDBn5a1kaMHp2JM3KlHK5aauybT4
|
|
6
|
+
ilmlKJ9sSm8pFLAWPKbkczSgZ+X6p/51v4zaEJSebZ98p32kQk87XJQE7aYroxYV
|
|
7
|
+
UfM5PSOoKWilj+LZQQEXV10qDoYGrnbSdoNSxYW5V1a1aP+ua0EO7m9MUYkoLxi3
|
|
8
|
+
SJ/s2h/5KM3TOz7d7DOZuSoNm+0n6YC4aqQnR3lmEtAXEYLQqLhH2Q3FTKTHwBQw
|
|
9
|
+
HgMBAzcXOS1YSw6Ekwh1eZamizrOEC4I6oZEHoUBqRfbsQ8tu77kDq2ovQSyn8Fp
|
|
10
|
+
SeE64m3GgZOYdfcDuNZ0ccmm3shBBfTfD9AwR+1thklKO3oaaLEHb6TmnkD79rEz
|
|
11
|
+
9WsiVxoN7vqqWdgoeyl7REOB6WLQp8kYS4FoRG0QB/ZS8Hs/Tf17QPnrQNiMkvP7
|
|
12
|
+
sJSHmlaMKXjWXK0VoN94kfZKUXwkzLD1VXuXFCnUkznWU0tahYi06b8/SVXc6EG+
|
|
13
|
+
0mzylckH7UnjOQfxSFAlZ+e/PiX80tcPakxYbk+f1Nv7L0NOyhrDv18KUbv9mEpV
|
|
14
|
+
Ysild1m7/QSF0u1qmjmGNQ==
|
|
15
|
+
-----END DSA PRIVATE KEY-----
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-----BEGIN PUBLIC KEY-----
|
|
2
|
+
MIIBtzCCASwGByqGSM44BAEwggEfAoGBAOY0KsTt5EpJ4LtlD3xRS5mDiGE1CMNp
|
|
3
|
+
0S9X0sK8kP8Aps8iYwMLbZYglk18GCNnCk4SjbAnZHSB3kaIv6AKQc2J8W2YV5se
|
|
4
|
+
3VhpKOFst7bqRtkGsl8uJtGlKTiXNclkv2jsKOrsBokSD1USGCECTNeMt3OgziRc
|
|
5
|
+
Z1dS+djSOZ2nAhUAzB96SpxlAak+K/QLVJ+lDe5DcY0CgYEAtxX1/HckvhlhHQyK
|
|
6
|
+
ZWLQsDfZBILbhc+OLDpOyT6cJS/sJzfFIYZgK5M3rOS4OmzdYfJccQAuGq+TVJQ3
|
|
7
|
+
VcYOdbrIANJV8CDrn4jkkejTzJI6fCwAkPWOyxw8kbV1Hsoy6WLfSCHKpBUcrogA
|
|
8
|
+
qRGESqBVTawjyF/ECX667y/P49MDgYQAAoGAXYmxO4+52C1gBzh7GgTwNLJl7bLn
|
|
9
|
+
gOhKTFlKhT36VjMjeFfdXmBVBVbfUottKZby/gVX1IXT38PStB/dswbF45bGDdoS
|
|
10
|
+
zMFjYmHTtLtrU/4hReVtvb5MYmrPDFX58SwcSRRO/cH6WJPvfu4Aq0cJZA9Kb0B9
|
|
11
|
+
5Wo18JxAqvPtTB8=
|
|
12
|
+
-----END PUBLIC KEY-----
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
2
|
+
MIICVAIBAAJ/OwswbFo/uyC8ltGf/yA1A+gV5IGdnAgPbUSI3GzbHCA+x+TLG/tL
|
|
3
|
+
vbRw3r1smppY/jkkpiVW1ErSMuN0uixp5gb78Z9rH1XpWb5WWgp3WaY/9EHMjMdO
|
|
4
|
+
kQ/9LVZvRvl/M/Fi6owP+q+amJI1BEjECYfbhGL3rmlVdq4qXc40QwIDAQABAn8I
|
|
5
|
+
VZ0BPoAOhyF33KFMHxy8r28fsVgxJUYgM3NqQgdv4fFawCYXjhJz9duU5YJGFJGJ
|
|
6
|
+
WUGeHlkyYFlpi4f3m7tY7JawmQUWB0MNSoKHI3cgDX4/tfBN8ni+cO0eSoR5czBY
|
|
7
|
+
EsAHBU47p1awNFAHwd+ZEuv9H4RmMn7p279rQTtpAkAH3Nqs2/vrRF2cZUN4fIXf
|
|
8
|
+
4xHsQBByUayGq8a3J0UGaSFWv68zTUKFherr9uZotNp7NJ4jBXiARw0q8docXUG1
|
|
9
|
+
AkAHgmOKHoORtAmikqpmFEJZOtsXMaLCIm4EszPo5ciYoLMBcVit09AdiQlt7ZJL
|
|
10
|
+
DY02svU1b0agCZ97kDkmHDkXAkACa8M9JELuDs/P/vIGYDkMVatIFfW6bWF02eFG
|
|
11
|
+
taWwMqCcSEsWvbw0xqYt34jURpNbCjmCyQVwYfAw/+TLhP9dAkAFwRjdwjw37qpj
|
|
12
|
+
ddg1mNiu37b7swFxmkiMOXZRxaNNsfb56A14RpN3zob3QdGUybGodMIKTFbmU/lu
|
|
13
|
+
CjqAxafJAkAG2yf6RWbwFIWfMyt7WYCh0VaGBCcgy574AinVieEo3ZZyFfC63+xm
|
|
14
|
+
3uoaNy4iLoJv4GCjqUBz3ZfcVaO/DDWG
|
|
15
|
+
-----END RSA PRIVATE KEY-----
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
|
2
|
+
MIIEjwIBAAKB/gy7mjaWgPeFdVYDZWRCA9BNiv3pPb0es27+FKY0hszLaOw47ExC
|
|
3
|
+
tAWpDsH48TXAfyHBYwBLguayfk4LGIupxb+CGMbRo3xEp0CbfY1Jby26T9vGjRC1
|
|
4
|
+
foHDDUJG84uaRbyHqaf4i6zt4gVR+xlAEIjkaFAAK8cOoXAT1CVqGLLljUCchL8P
|
|
5
|
+
jaHj/yriZ/S7rdwlI3LnABxwwmLrmR/v71WtpmO/aNG8N+1po+QwaghTkyQ59E/Z
|
|
6
|
+
vAuOkFWHok2q/R6PYAa2jdZ9zim0FqOP+nkQaEDRbBFBmBqTv5fFGfk2WsAfKf/R
|
|
7
|
+
G0/VFd+ZeM5251TeTvXH695nlSGauVl9AgMBAAECgf4LrWHY/l54ouThZWvvbrug
|
|
8
|
+
pfz6sJX2g9l7yXmWlEWsPECVo/7SUbpYFpt6OZy99zSg+IKbGqWKfdhoKrTwIVtC
|
|
9
|
+
L0YZ0NlmdnANSIz0roxQG7ZxkL5+vHSw/PmD9x4Uwf+Cz8hATCmNBv1qc60dkyuW
|
|
10
|
+
4CLqe72qaTiVWRoO1iagQghNcLoo6vSy65ExLaCDTPha7yu2vw4hFZpWiEjW4dxf
|
|
11
|
+
rFdLiix52BC86YlAlxME/rLg8IJVvilbyo9aWdXmxOaUTLRv6PkFD1/gVdw8V9Qr
|
|
12
|
+
SLN9FlK2kkjiX0dzoibvZw3tMnt3yydAx0X87+sMRVahC1bp3kVPz4Hy0EWX4QJ/
|
|
13
|
+
PM31vGiuITk2NCd51DXt1Ltn2OP5FaJSmCaEjh0XkU4qouYyjXWt8Bu6BTCl2vua
|
|
14
|
+
Fg0Uji9C+IkPLmaUMbMIOwaTk8cWqLthSxsLe70J5OkGrgfKUM/w+BHH1Pt/Pjzj
|
|
15
|
+
C++l0kiFaOVDVaAV9GpLPLCBoK/PC9Rb/rxMMoCCNwJ/NZuedIny2w3LMii77h/T
|
|
16
|
+
zSvergNGhjY6Rnva8lLXJ6dlrkcPAyps3gWwxqj4NR0T+GM0bDUPVLb7M07XV7SX
|
|
17
|
+
v7VJGm52JbRGwM1ss+r8XTTNemeGk+WRxG7TgtsMqYGXLfB8Qxk/f5/Mcc00Tl8u
|
|
18
|
+
wXFNsfxJxmt6AbsTr3g36wJ/IhOnibz9Ad+nchlBnN3QeW3CKHqzaR18voqvtVm2
|
|
19
|
+
kJfHK15prH/sSGmxmiEGgrCJTZxtDbaNCO7/VBjnKudUUIhCAwsLtuq0/zub9vAd
|
|
20
|
+
8G1scfIpv5qaSNzmKoX8bOwArvrS6wP7yKrcTsuWIlHD8rJVI7IEDnQoTp5G8fK1
|
|
21
|
+
hwJ/MIh8M5v0r5dUYEv6oIJWGcle6AH1JmsP5WIafgq72Z2288pHcCFHwNY8Dg9J
|
|
22
|
+
76QswVLnUhPTlmm3EOOPGEtam2iAD5r0Afytlb4lbNoQsj2szeXONDXB+6oueajh
|
|
23
|
+
VNELUr8HcSP5lgzRZjJW6aFIzj9LDRmQnUAOjGSXVOQtEwJ/MCQZ7N/v4dIKeDRA
|
|
24
|
+
8d8UExZ3+gGHumziztGRJ0tQryZH2PakP5I7V+1l7qEUnJ2c3mF+e1v41Ep9LCvh
|
|
25
|
+
bzrPKw9dxh18g4b+7bMpsWPnsraKh6ipxc7aaOaZV0Dxgez4zcZu0P1olO0cN3KM
|
|
26
|
+
nxJ0Pds3R8bAhNCDdS2JZaRp5Q==
|
|
27
|
+
-----END RSA PRIVATE KEY-----
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
-----BEGIN RSA PUBLIC KEY-----
|
|
2
|
+
MIIBBgKB/gy7mjaWgPeFdVYDZWRCA9BNiv3pPb0es27+FKY0hszLaOw47ExCtAWp
|
|
3
|
+
DsH48TXAfyHBYwBLguayfk4LGIupxb+CGMbRo3xEp0CbfY1Jby26T9vGjRC1foHD
|
|
4
|
+
DUJG84uaRbyHqaf4i6zt4gVR+xlAEIjkaFAAK8cOoXAT1CVqGLLljUCchL8PjaHj
|
|
5
|
+
/yriZ/S7rdwlI3LnABxwwmLrmR/v71WtpmO/aNG8N+1po+QwaghTkyQ59E/ZvAuO
|
|
6
|
+
kFWHok2q/R6PYAa2jdZ9zim0FqOP+nkQaEDRbBFBmBqTv5fFGfk2WsAfKf/RG0/V
|
|
7
|
+
Fd+ZeM5251TeTvXH695nlSGauVl9AgMBAAE=
|
|
8
|
+
-----END RSA PUBLIC KEY-----
|
package/test/tape.js
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Zero-dependency drop-in for the slice of the `tape` API this suite uses,
|
|
4
|
+
// implemented on Node's built-in test runner. Keeping the test bodies
|
|
5
|
+
// byte-for-byte identical (only their `require('tape')` line changes) avoids
|
|
6
|
+
// hand-rewriting security-critical crypto assertions, while removing tape's
|
|
7
|
+
// ~25-dependency tree from the CI dev environment that holds publish creds.
|
|
8
|
+
//
|
|
9
|
+
// Supported surface (all that the crypto-browserify suite calls):
|
|
10
|
+
// test(name[, opts], cb) / t.test(name[, opts], cb) - tests and subtests
|
|
11
|
+
// t.plan(n) / t.end() - completion
|
|
12
|
+
// t.ok / t.notOk / t.equal(s) / t.notEqual(s) / t.deepEqual / t.notDeepEqual
|
|
13
|
+
// t.match / t.doesNotMatch / t.throws / t.doesNotThrow / t.error / t.ifError
|
|
14
|
+
// t.pass / t.fail / t.comment - assertions and output
|
|
15
|
+
// opts.skip (boolean or reason string)
|
|
16
|
+
|
|
17
|
+
var nodeTest = require('node:test');
|
|
18
|
+
var assert = require('node:assert');
|
|
19
|
+
|
|
20
|
+
function normalize(name, opts, cb) {
|
|
21
|
+
if (typeof opts === 'function') {
|
|
22
|
+
cb = opts;
|
|
23
|
+
opts = {};
|
|
24
|
+
}
|
|
25
|
+
return { name: name, opts: opts || {}, cb: cb };
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function nodeOpts(o) {
|
|
29
|
+
var out = {};
|
|
30
|
+
if (o && typeof o.skip !== 'undefined') out.skip = o.skip;
|
|
31
|
+
if (o && typeof o.todo !== 'undefined') out.todo = o.todo;
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Runs one tape-style body against a node:test context, resolving when the
|
|
36
|
+
// body signals completion the way tape does: an exhausted plan(), an explicit
|
|
37
|
+
// end(), a returned promise, or (for a parent) once its subtests settle.
|
|
38
|
+
function runBody(t, cb) {
|
|
39
|
+
return new Promise(function (resolve, reject) {
|
|
40
|
+
var planned = null;
|
|
41
|
+
var count = 0;
|
|
42
|
+
var done = false;
|
|
43
|
+
var subtests = [];
|
|
44
|
+
|
|
45
|
+
function settle() {
|
|
46
|
+
if (done) return;
|
|
47
|
+
done = true;
|
|
48
|
+
Promise.all(subtests).then(function () { resolve(); }, reject);
|
|
49
|
+
}
|
|
50
|
+
function bump() {
|
|
51
|
+
count += 1;
|
|
52
|
+
test.assertions += 1;
|
|
53
|
+
if (planned !== null && count >= planned) settle();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
var ctx = {
|
|
57
|
+
plan: function (n) { planned = n; if (count >= n) settle(); },
|
|
58
|
+
end: function () { settle(); },
|
|
59
|
+
ok: function (v, m) { assert.ok(v, m); bump(); },
|
|
60
|
+
equal: function (a, b, m) { assert.strictEqual(a, b, m); bump(); },
|
|
61
|
+
equals: function (a, b, m) { assert.strictEqual(a, b, m); bump(); },
|
|
62
|
+
notEqual: function (a, b, m) { assert.notStrictEqual(a, b, m); bump(); },
|
|
63
|
+
notEquals: function (a, b, m) { assert.notStrictEqual(a, b, m); bump(); },
|
|
64
|
+
error: function (e, m) { assert.ifError(e); bump(); },
|
|
65
|
+
ifError: function (e, m) { assert.ifError(e); bump(); },
|
|
66
|
+
notOk: function (v, m) { assert.ok(!v, m); bump(); },
|
|
67
|
+
deepEqual: function (a, b, m) { assert.deepStrictEqual(a, b, m); bump(); },
|
|
68
|
+
notDeepEqual: function (a, b, m) { assert.notDeepStrictEqual(a, b, m); bump(); },
|
|
69
|
+
doesNotMatch: function (v, re, m) { assert.doesNotMatch(v, re, m); bump(); },
|
|
70
|
+
match: function (v, re, m) { assert.match(v, re, m); bump(); },
|
|
71
|
+
// tape treats a string second argument as the assertion message;
|
|
72
|
+
// assert.throws treats it as the expected error and rejects it.
|
|
73
|
+
throws: function (fn, expected, m) {
|
|
74
|
+
if (typeof expected === 'string') { m = expected; expected = undefined; }
|
|
75
|
+
assert.throws(fn, expected, m);
|
|
76
|
+
bump();
|
|
77
|
+
},
|
|
78
|
+
doesNotThrow: function (fn, expected, m) {
|
|
79
|
+
if (typeof expected === 'string') { m = expected; expected = undefined; }
|
|
80
|
+
assert.doesNotThrow(fn, expected, m);
|
|
81
|
+
bump();
|
|
82
|
+
},
|
|
83
|
+
fail: function (m) { assert.fail(m || 'fail'); },
|
|
84
|
+
pass: function (m) { assert.ok(true, m); bump(); },
|
|
85
|
+
comment: function (m) { if (typeof t.diagnostic === 'function') t.diagnostic(String(m)); },
|
|
86
|
+
test: function (sn, so, sc) {
|
|
87
|
+
var n = normalize(sn, so, sc);
|
|
88
|
+
subtests.push(t.test(n.name, nodeOpts(n.opts), function (st) {
|
|
89
|
+
return runBody(st, n.cb);
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
var ret;
|
|
95
|
+
try {
|
|
96
|
+
ret = cb(ctx);
|
|
97
|
+
} catch (err) {
|
|
98
|
+
reject(err);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (!done && planned === null) {
|
|
103
|
+
if (subtests.length > 0) {
|
|
104
|
+
Promise.all(subtests).then(function () { settle(); }, reject);
|
|
105
|
+
} else if (ret && typeof ret.then === 'function') {
|
|
106
|
+
ret.then(function () { settle(); }, reject);
|
|
107
|
+
}
|
|
108
|
+
// otherwise: an async leaf that will call end() later
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function test(name, opts, cb) {
|
|
114
|
+
var n = normalize(name, opts, cb);
|
|
115
|
+
return nodeTest(n.name, nodeOpts(n.opts), function (t) {
|
|
116
|
+
return runBody(t, n.cb);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
test.test = test;
|
|
121
|
+
// Total assertions executed, so a tape-to-node:test conversion can be checked
|
|
122
|
+
// against the count tape reported rather than assumed equivalent.
|
|
123
|
+
test.assertions = 0;
|
|
124
|
+
|
|
125
|
+
// `node --test` reports tests, not assertions, so a conversion from tape can
|
|
126
|
+
// look green while quietly running fewer checks. Set TAPE_SHIM_COUNT=1 to print
|
|
127
|
+
// the total and compare it against the count tape reported.
|
|
128
|
+
if (process.env.TAPE_SHIM_COUNT) {
|
|
129
|
+
process.on('exit', function () {
|
|
130
|
+
process.stdout.write('# assertions ' + test.assertions + '\n');
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
module.exports = test;
|
package/test/vector.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var bFrom = Buffer.from && Buffer.from.length > 1 ? Buffer.from : function (a, b) { return new Buffer(a, b); };
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
p: bFrom('86F5CA03DCFEB225063FF830A0C769B9DD9D6153AD91D7CE27F787C43278B447E6533B86B18BED6E8A48B784A14C252C5BE0DBF60B86D6385BD2F12FB763ED8873ABFD3F5BA2E0A8C0A59082EAC056935E529DAF7C610467899C77ADEDFC846C881870B7B19B2B58F9BE0521A17002E3BDD6B86685EE90B3D9A1B02B782B1779', 'hex'),
|
|
7
|
+
q: bFrom('996F967F6C8E388D9E28D01E205FBA957A5698B1', 'hex'),
|
|
8
|
+
g: bFrom('07B0F92546150B62514BB771E2A0C0CE387F03BDA6C56B505209FF25FD3C133D89BBCD97E904E09114D9A7DEFDEADFC9078EA544D2E401AEECC40BB9FBBF78FD87995A10A1C27CB7789B594BA7EFB5C4326A9FE59A070E136DB77175464ADCA417BE5DCE2F40D10A46A3A3943F26AB7FD9C0398FF8C76EE0A56826A8A88F1DBD', 'hex'),
|
|
9
|
+
x: bFrom('411602CB19A6CCC34494D79D98EF1E7ED5AF25F7', 'hex'),
|
|
10
|
+
y: bFrom('5DF5E01DED31D0297E274E1691C192FE5868FEF9E19A84776454B100CF16F65392195A38B90523E2542EE61871C0440CB87C322FC4B4D2EC5E1E7EC766E1BE8D4CE935437DC11C3C8FD426338933EBFE739CB3465F4D3668C5E473508253B1E682F65CBDC4FAE93C2EA212390E54905A86E2223170B44EAA7DA5DD9FFCFB7F3B', 'hex')
|
|
11
|
+
};
|
package/test/vector.priv
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-----BEGIN DSA PRIVATE KEY-----
|
|
2
|
+
MIIBugIBAAKBgQCG9coD3P6yJQY/+DCgx2m53Z1hU62R184n94fEMni0R+ZTO4ax
|
|
3
|
+
i+1uiki3hKFMJSxb4Nv2C4bWOFvS8S+3Y+2Ic6v9P1ui4KjApZCC6sBWk15Sna98
|
|
4
|
+
YQRniZx3re38hGyIGHC3sZsrWPm+BSGhcALjvda4ZoXukLPZobAreCsXeQIVAJlv
|
|
5
|
+
ln9sjjiNnijQHiBfupV6VpixAoGAB7D5JUYVC2JRS7dx4qDAzjh/A72mxWtQUgn/
|
|
6
|
+
Jf08Ez2Ju82X6QTgkRTZp9796t/JB46lRNLkAa7sxAu5+794/YeZWhChwny3eJtZ
|
|
7
|
+
S6fvtcQyap/lmgcOE223cXVGStykF75dzi9A0QpGo6OUPyarf9nAOY/4x27gpWgm
|
|
8
|
+
qKiPHb0CgYBd9eAd7THQKX4nThaRwZL+WGj++eGahHdkVLEAzxb2U5IZWji5BSPi
|
|
9
|
+
VC7mGHHARAy4fDIvxLTS7F4efsdm4b6NTOk1Q33BHDyP1CYziTPr/nOcs0ZfTTZo
|
|
10
|
+
xeRzUIJTseaC9ly9xPrpPC6iEjkOVJBahuIiMXC0Tqp9pd2f/Pt/OwIUQRYCyxmm
|
|
11
|
+
zMNElNedmO8eftWvJfc=
|
|
12
|
+
-----END DSA PRIVATE KEY-----
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
-----BEGIN DSA PRIVATE KEY-----
|
|
2
|
+
MIIDVQIBAAKCAQEAnbb7WVG2a7b+HhQPHSzlUCN0Fh/WU43xZIIYZC8LXEjI96Qa
|
|
3
|
+
rfoYcyS4dnT6GCKwDx7PgTaUPXxVdXJk5aGkT/4BLpk24AwdPpMQsBx9F5gF0wWL
|
|
4
|
+
Kp9Ltvlxa/5hF8a1s8xNm+NBEErUqArWyU4AX0uZPhTwketRdDvzMFDDjeI1Vn4b
|
|
5
|
+
NMPWpcDOqhoPNoITw9GYQ9C0sJ3Ln8ctOcjeQfG/FNS7RWPKKDcWIcrTMktqLTkh
|
|
6
|
+
Rb6/rHSIBSNvXKL+krhxzY+cNtMpK1UJyoyqd6Kt/Hv9d92m9xElp0Vv6hU+QzJW
|
|
7
|
+
oiYcagbtNpN5fnmV+tWqu8++PtonQeN1QEriWwIhAPLDEZN0znbJNWmQtGU3Shfy
|
|
8
|
+
P57TUIm9lp9hxt3pmYwfAoIBAFx/9rBvjxQ/6CiEM0k+R2nE2Yis5b4loOJICWcH
|
|
9
|
+
FsYT17DO5pMvj6p8RNLLJFI9pT++T27DWViS0apYxDKKBsRqFWYufqpwOh3s+Luy
|
|
10
|
+
0F2+LrlWwUKjOGYdEEYcDRNUcghQV/NJQwn/pzxhH3izKtu1dAw2HJ81vpCZfbIB
|
|
11
|
+
Ti71qmF4L1Kr64vWQyxN0Je8VCOyhdr7YNw2ToFh9KKjWso6ELHE0gPMdqRwozr9
|
|
12
|
+
y92SlZhZq9i1bhclJS146sZucbqa4/HdJIcZmHQ5PNTYMhhoAGVHYOHjTAnk0VUX
|
|
13
|
+
n57A3ERz+Za9zm7tHKvti28Rb3rZz1Bd8PmY40qydRSw/+cCggEAZnCYxlRCbHjX
|
|
14
|
+
+CAerGwgPvAw1DYFAywvH6k35SN9vZSfNKCiVk/hJtyLcVxRQYAs4JecgkZGPEDm
|
|
15
|
+
tr2qJRP6YRcocWwuT9U7yVuJ5plJ2WUS6HO5yPjf1JnMMSiCVhreyzH2WOk0wMGX
|
|
16
|
+
8sTZawXLrWc4Hnt2iJHk2jhD0k2UzftRJum4vyHoNY7g4KMO8T/WpmTA3ONzH3+0
|
|
17
|
+
mkhFpP2CVGh5cqLTglmcm6xODteZgZMHiRMDJVgTSXZBC4nSwXHRI6w1/ZdyGVl6p9FcGppCjlkZT3XHIevLz65EaWpJmvp04EKZ8TICZgFjjLh6t5GQ1KCYY
|
|
18
|
+
xXajuxlYck4mWvq3wIgacdUjCHQ3+prmlHJ6tTifDPTs/GAMW5byrkskz8OTbw=
|
|
19
|
+
-----END DSA PRIVATE KEY-----
|