2
2
// so extract it separately from the other exports
3
3
import {
4
4
Cipher ,
5
- Cipheriv ,
6
5
constants ,
7
6
createCipher ,
8
- createCipheriv ,
9
7
createDecipher ,
10
- createDecipheriv ,
11
- createECDH ,
12
- createSign ,
13
- createVerify ,
14
8
Decipher ,
15
- Decipheriv ,
16
- diffieHellman ,
17
- ECDH ,
18
- getCipherInfo ,
19
- hash ,
20
- privateDecrypt ,
21
- privateEncrypt ,
22
9
pseudoRandomBytes ,
23
- publicDecrypt ,
24
- publicEncrypt ,
25
- Sign ,
26
- sign ,
27
10
webcrypto as unenvCryptoWebcrypto ,
28
- Verify ,
29
- verify ,
30
11
} from "unenv/node/crypto" ;
31
12
import type nodeCrypto from "node:crypto" ;
32
13
33
- export {
34
- Cipher ,
35
- Cipheriv ,
36
- Decipher ,
37
- Decipheriv ,
38
- ECDH ,
39
- Sign ,
40
- Verify ,
41
- constants ,
42
- createCipheriv ,
43
- createDecipheriv ,
44
- createECDH ,
45
- createSign ,
46
- createVerify ,
47
- diffieHellman ,
48
- getCipherInfo ,
49
- hash ,
50
- privateDecrypt ,
51
- privateEncrypt ,
52
- publicDecrypt ,
53
- publicEncrypt ,
54
- sign ,
55
- verify ,
56
- } from "unenv/node/crypto" ;
14
+ export { Cipher , constants , Decipher } from "unenv/node/crypto" ;
57
15
58
16
const workerdCrypto = process . getBuiltinModule ( "node:crypto" ) ;
59
17
60
- // TODO: Ideally this list is not hardcoded but instead is generated when the preset is being generated in the `env()` call
61
- // This generation should use information from https://github.com/cloudflare/workerd/issues/2097
62
18
export const {
63
19
Certificate,
64
- DiffieHellman,
65
- DiffieHellmanGroup,
66
- Hash,
67
- Hmac,
68
- KeyObject,
69
- X509Certificate,
70
20
checkPrime,
71
21
checkPrimeSync,
22
+ // @ts -expect-error
23
+ Cipheriv,
24
+ createCipheriv,
25
+ createDecipheriv,
72
26
createDiffieHellman,
73
27
createDiffieHellmanGroup,
28
+ createECDH,
74
29
createHash,
75
30
createHmac,
76
31
createPrivateKey,
77
32
createPublicKey,
78
33
createSecretKey,
34
+ createSign,
35
+ createVerify,
36
+ // @ts -expect-error
37
+ Decipheriv,
38
+ diffieHellman,
39
+ DiffieHellman,
40
+ DiffieHellmanGroup,
41
+ ECDH ,
42
+ fips,
79
43
generateKey,
80
44
generateKeyPair,
81
45
generateKeyPairSync,
82
46
generateKeySync,
83
47
generatePrime,
84
48
generatePrimeSync,
49
+ getCipherInfo,
85
50
getCiphers,
86
51
getCurves,
87
52
getDiffieHellman,
88
53
getFips,
89
54
getHashes,
55
+ getRandomValues,
56
+ hash,
57
+ Hash,
90
58
hkdf,
91
59
hkdfSync,
60
+ Hmac,
61
+ KeyObject,
92
62
pbkdf2,
93
63
pbkdf2Sync,
64
+ privateDecrypt,
65
+ privateEncrypt,
66
+ publicDecrypt,
67
+ publicEncrypt,
94
68
randomBytes,
95
69
randomFill,
96
70
randomFillSync,
@@ -101,27 +75,24 @@ export const {
101
75
secureHeapUsed,
102
76
setEngine,
103
77
setFips,
78
+ sign,
79
+ Sign,
104
80
subtle,
105
81
timingSafeEqual,
82
+ verify,
83
+ Verify,
84
+ X509Certificate,
106
85
} = workerdCrypto ;
107
86
108
- // Special case getRandomValues as it must be bound to the webcrypto object
109
- export const getRandomValues = workerdCrypto . getRandomValues . bind (
110
- workerdCrypto . webcrypto
111
- ) ;
112
-
87
+ // See https://github.com/cloudflare/workerd/issues/3751
113
88
export const webcrypto = {
114
- // @ts -expect-error unenv has unknown type
89
+ // @ts -expect-error
115
90
CryptoKey : unenvCryptoWebcrypto . CryptoKey ,
116
91
getRandomValues,
117
92
randomUUID,
118
93
subtle,
119
94
} satisfies typeof nodeCrypto . webcrypto ;
120
95
121
- // Node.js exposes fips only via the default export 🤷🏼♂️
122
- // so extract it separately from the other exports
123
- const fips = workerdCrypto . fips ;
124
-
125
96
export default {
126
97
/**
127
98
* manually unroll unenv-polyfilled-symbols to make it tree-shakeable
@@ -137,35 +108,21 @@ export default {
137
108
X509Certificate,
138
109
// @ts -expect-error @types/node is out of date - this is a bug in typings
139
110
constants,
140
- // @ts -expect-error unenv has unknown type
141
111
createCipheriv,
142
- // @ts -expect-error unenv has unknown type
143
112
createDecipheriv,
144
- // @ts -expect-error unenv has unknown type
145
113
createECDH,
146
- // @ts -expect-error unenv has unknown type
147
114
createSign,
148
- // @ts -expect-error unenv has unknown type
149
115
createVerify,
150
- // @ts -expect-error unenv has unknown type
151
116
diffieHellman,
152
- // @ts -expect-error unenv has unknown type
153
117
getCipherInfo,
154
- // @ts -expect-error unenv has unknown type
155
118
hash,
156
- // @ts -expect-error unenv has unknown type
157
119
privateDecrypt,
158
- // @ts -expect-error unenv has unknown type
159
120
privateEncrypt,
160
- // @ts -expect-error unenv has unknown type
161
121
publicDecrypt,
162
- // @ts -expect-error unenv has unknown type
163
122
publicEncrypt,
164
123
scrypt,
165
124
scryptSync,
166
- // @ts -expect-error unenv has unknown type
167
125
sign,
168
- // @ts -expect-error unenv has unknown type
169
126
verify,
170
127
171
128
// default-only export from unenv
0 commit comments