@libp2p/crypto 1.0.17 → 2.0.0-58421e11

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.
Files changed (63) hide show
  1. package/README.md +3 -3
  2. package/dist/index.min.js +9 -9
  3. package/dist/src/aes/cipher-mode.js +1 -1
  4. package/dist/src/aes/cipher-mode.js.map +1 -1
  5. package/dist/src/aes/ciphers-browser.d.ts.map +1 -1
  6. package/dist/src/aes/ciphers-browser.js.map +1 -1
  7. package/dist/src/ciphers/interface.d.ts.map +1 -1
  8. package/dist/src/hmac/lengths.d.ts.map +1 -1
  9. package/dist/src/hmac/lengths.js.map +1 -1
  10. package/dist/src/keys/ecdh-browser.js +1 -1
  11. package/dist/src/keys/ecdh-browser.js.map +1 -1
  12. package/dist/src/keys/ecdh.js +1 -1
  13. package/dist/src/keys/ecdh.js.map +1 -1
  14. package/dist/src/keys/ed25519-class.js +1 -1
  15. package/dist/src/keys/ed25519-class.js.map +1 -1
  16. package/dist/src/keys/index.d.ts +1 -1
  17. package/dist/src/keys/index.js +1 -1
  18. package/dist/src/keys/index.js.map +1 -1
  19. package/dist/src/keys/interface.d.ts.map +1 -1
  20. package/dist/src/keys/key-stretcher.js +1 -1
  21. package/dist/src/keys/key-stretcher.js.map +1 -1
  22. package/dist/src/keys/rsa-browser.d.ts +1 -0
  23. package/dist/src/keys/rsa-browser.d.ts.map +1 -1
  24. package/dist/src/keys/rsa-browser.js +11 -1
  25. package/dist/src/keys/rsa-browser.js.map +1 -1
  26. package/dist/src/keys/rsa-class.d.ts +1 -0
  27. package/dist/src/keys/rsa-class.d.ts.map +1 -1
  28. package/dist/src/keys/rsa-class.js +14 -1
  29. package/dist/src/keys/rsa-class.js.map +1 -1
  30. package/dist/src/keys/rsa-utils.js +1 -1
  31. package/dist/src/keys/rsa-utils.js.map +1 -1
  32. package/dist/src/keys/rsa.d.ts +1 -0
  33. package/dist/src/keys/rsa.d.ts.map +1 -1
  34. package/dist/src/keys/rsa.js +11 -1
  35. package/dist/src/keys/rsa.js.map +1 -1
  36. package/dist/src/keys/secp256k1-class.js +1 -1
  37. package/dist/src/keys/secp256k1-class.js.map +1 -1
  38. package/dist/src/keys/secp256k1.js +1 -1
  39. package/dist/src/keys/secp256k1.js.map +1 -1
  40. package/dist/src/pbkdf2.js +1 -1
  41. package/dist/src/pbkdf2.js.map +1 -1
  42. package/dist/src/random-bytes.js +1 -1
  43. package/dist/src/random-bytes.js.map +1 -1
  44. package/package.json +10 -106
  45. package/src/aes/cipher-mode.ts +1 -1
  46. package/src/aes/ciphers-browser.ts +0 -1
  47. package/src/ciphers/interface.ts +0 -1
  48. package/src/hmac/lengths.ts +0 -1
  49. package/src/keys/ecdh-browser.ts +1 -1
  50. package/src/keys/ecdh.ts +1 -1
  51. package/src/keys/ed25519-class.ts +1 -1
  52. package/src/keys/index.ts +2 -2
  53. package/src/keys/interface.ts +1 -2
  54. package/src/keys/key-stretcher.ts +1 -1
  55. package/src/keys/rsa-browser.ts +11 -1
  56. package/src/keys/rsa-class.ts +24 -2
  57. package/src/keys/rsa-utils.ts +1 -1
  58. package/src/keys/rsa.ts +11 -1
  59. package/src/keys/secp256k1-class.ts +1 -1
  60. package/src/keys/secp256k1.ts +1 -1
  61. package/src/pbkdf2.ts +1 -1
  62. package/src/random-bytes.ts +1 -1
  63. package/dist/typedoc-urls.json +0 -41
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@libp2p/crypto",
3
- "version": "1.0.17",
3
+ "version": "2.0.0-58421e11",
4
4
  "description": "Crypto primitives for libp2p",
5
5
  "license": "Apache-2.0 OR MIT",
6
- "homepage": "https://github.com/libp2p/js-libp2p-crypto#readme",
6
+ "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/crypto#readme",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/libp2p/js-libp2p-crypto.git"
9
+ "url": "git+https://github.com/libp2p/js-libp2p.git"
10
10
  },
11
11
  "bugs": {
12
- "url": "https://github.com/libp2p/js-libp2p-crypto/issues"
12
+ "url": "https://github.com/libp2p/js-libp2p/issues"
13
13
  },
14
14
  "keywords": [
15
15
  "IPFS",
@@ -18,10 +18,6 @@
18
18
  "rsa",
19
19
  "secp256k1"
20
20
  ],
21
- "engines": {
22
- "node": ">=16.0.0",
23
- "npm": ">=7.0.0"
24
- },
25
21
  "type": "module",
26
22
  "types": "./dist/src/index.d.ts",
27
23
  "typesVersions": {
@@ -55,10 +51,6 @@
55
51
  "types": "./dist/src/aes/index.d.ts",
56
52
  "import": "./dist/src/aes/index.js"
57
53
  },
58
- "./ciphers": {
59
- "types": "./dist/src/ciphers/index.d.ts",
60
- "import": "./dist/src/ciphers/index.js"
61
- },
62
54
  "./hmac": {
63
55
  "types": "./dist/src/hmac/index.d.ts",
64
56
  "import": "./dist/src/hmac/index.js"
@@ -77,122 +69,34 @@
77
69
  "src/*.d.ts"
78
70
  ]
79
71
  },
80
- "release": {
81
- "branches": [
82
- "master"
83
- ],
84
- "plugins": [
85
- [
86
- "@semantic-release/commit-analyzer",
87
- {
88
- "preset": "conventionalcommits",
89
- "releaseRules": [
90
- {
91
- "breaking": true,
92
- "release": "major"
93
- },
94
- {
95
- "revert": true,
96
- "release": "patch"
97
- },
98
- {
99
- "type": "feat",
100
- "release": "minor"
101
- },
102
- {
103
- "type": "fix",
104
- "release": "patch"
105
- },
106
- {
107
- "type": "docs",
108
- "release": "patch"
109
- },
110
- {
111
- "type": "test",
112
- "release": "patch"
113
- },
114
- {
115
- "type": "deps",
116
- "release": "patch"
117
- },
118
- {
119
- "scope": "no-release",
120
- "release": false
121
- }
122
- ]
123
- }
124
- ],
125
- [
126
- "@semantic-release/release-notes-generator",
127
- {
128
- "preset": "conventionalcommits",
129
- "presetConfig": {
130
- "types": [
131
- {
132
- "type": "feat",
133
- "section": "Features"
134
- },
135
- {
136
- "type": "fix",
137
- "section": "Bug Fixes"
138
- },
139
- {
140
- "type": "chore",
141
- "section": "Trivial Changes"
142
- },
143
- {
144
- "type": "docs",
145
- "section": "Documentation"
146
- },
147
- {
148
- "type": "deps",
149
- "section": "Dependencies"
150
- },
151
- {
152
- "type": "test",
153
- "section": "Tests"
154
- }
155
- ]
156
- }
157
- }
158
- ],
159
- "@semantic-release/changelog",
160
- "@semantic-release/npm",
161
- "@semantic-release/github",
162
- "@semantic-release/git"
163
- ]
164
- },
165
72
  "scripts": {
166
73
  "clean": "aegir clean",
167
74
  "lint": "aegir lint",
168
- "dep-check": "aegir dep-check -i protons",
75
+ "dep-check": "aegir dep-check",
169
76
  "build": "aegir build",
170
77
  "test": "aegir test",
171
78
  "test:chrome": "aegir test -t browser",
172
79
  "test:chrome-webworker": "aegir test -t webworker",
173
80
  "test:firefox": "aegir test -t browser -- --browser firefox",
174
81
  "test:firefox-webworker": "aegir test -t webworker -- --browser firefox",
175
- "test:webkit": "bash -c '[ \"${CI}\" == \"true\" ] && playwright install-deps'; aegir test -t browser -- --browser webkit",
82
+ "test:webkit": "aegir test -t browser -- --browser webkit",
176
83
  "test:node": "aegir test -t node --cov",
177
84
  "test:electron-main": "aegir test -t electron-main",
178
- "release": "aegir release",
179
- "docs": "aegir docs",
180
85
  "generate": "protons ./src/keys/keys.proto"
181
86
  },
182
87
  "dependencies": {
183
- "@libp2p/interface-keys": "^1.0.2",
184
- "@libp2p/interfaces": "^3.2.0",
88
+ "@libp2p/interface": "0.1.0-58421e11",
185
89
  "@noble/ed25519": "^1.6.0",
186
90
  "@noble/secp256k1": "^1.5.4",
187
- "multiformats": "^11.0.0",
91
+ "multiformats": "^12.0.1",
188
92
  "node-forge": "^1.1.0",
189
93
  "protons-runtime": "^5.0.0",
190
94
  "uint8arraylist": "^2.4.3",
191
- "uint8arrays": "^4.0.2"
95
+ "uint8arrays": "^4.0.4"
192
96
  },
193
97
  "devDependencies": {
194
98
  "@types/mocha": "^10.0.0",
195
- "aegir": "^39.0.5",
99
+ "aegir": "^40.0.1",
196
100
  "benchmark": "^2.1.4",
197
101
  "protons": "^7.0.2"
198
102
  },
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
 
3
3
  const CIPHER_MODES = {
4
4
  16: 'aes-128-ctr',
@@ -1,4 +1,3 @@
1
-
2
1
  import 'node-forge/lib/aes.js'
3
2
  // @ts-expect-error types are missing
4
3
  import forge from 'node-forge/lib/forge.js'
@@ -1,4 +1,3 @@
1
-
2
1
  export interface CreateOptions {
3
2
  algorithm?: string
4
3
  nonceLength?: number
@@ -1,4 +1,3 @@
1
-
2
1
  export default {
3
2
  SHA1: 20,
4
3
  SHA256: 32,
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import { concat as uint8ArrayConcat } from 'uint8arrays/concat'
3
3
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
4
4
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
package/src/keys/ecdh.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import crypto from 'crypto'
2
- import { CodeError } from '@libp2p/interfaces/errors'
2
+ import { CodeError } from '@libp2p/interface/errors'
3
3
  import type { ECDHKey, ECDHKeyPair } from './interface.js'
4
4
 
5
5
  const curves = {
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import { base58btc } from 'multiformats/bases/base58'
3
3
  import { identity } from 'multiformats/hashes/identity'
4
4
  import { sha256 } from 'multiformats/hashes/sha2'
package/src/keys/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'node-forge/lib/asn1.js'
2
2
  import 'node-forge/lib/pbe.js'
3
- import { CodeError } from '@libp2p/interfaces/errors'
3
+ import { CodeError } from '@libp2p/interface/errors'
4
4
  // @ts-expect-error types are missing
5
5
  import forge from 'node-forge/lib/forge.js'
6
6
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
@@ -11,7 +11,7 @@ import { keyStretcher } from './key-stretcher.js'
11
11
  import * as keysPBM from './keys.js'
12
12
  import * as RSA from './rsa-class.js'
13
13
  import * as Secp256k1 from './secp256k1-class.js'
14
- import type { PrivateKey, PublicKey } from '@libp2p/interface-keys'
14
+ import type { PrivateKey, PublicKey } from '@libp2p/interface/keys'
15
15
 
16
16
  export { keyStretcher }
17
17
  export { generateEphemeralKeyPair }
@@ -1,4 +1,3 @@
1
-
2
1
  export interface JWKKeyPair {
3
2
  privateKey: JsonWebKey
4
3
  publicKey: JsonWebKey
@@ -21,7 +20,7 @@ export interface ECDHKey {
21
20
 
22
21
  export interface JWKEncodedPublicKey { kty: string, crv: 'P-256' | 'P-384' | 'P-521', x: string, y: string, ext: boolean }
23
22
 
24
- export interface JWKEncodedPrivateKey extends JWKEncodedPublicKey { d: string}
23
+ export interface JWKEncodedPrivateKey extends JWKEncodedPublicKey { d: string }
25
24
 
26
25
  export interface EnhancedKey {
27
26
  iv: Uint8Array
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import { concat as uint8ArrayConcat } from 'uint8arrays/concat'
3
3
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
4
4
  import * as hmac from '../hmac/index.js'
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
3
3
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
4
4
  import randomBytes from '../random-bytes.js'
@@ -155,3 +155,13 @@ export function encrypt (key: JsonWebKey, msg: Uint8Array): Uint8Array {
155
155
  export function decrypt (key: JsonWebKey, msg: Uint8Array): Uint8Array {
156
156
  return convertKey(key, false, msg, (msg, key) => key.decrypt(msg))
157
157
  }
158
+
159
+ export function keySize (jwk: JsonWebKey): number {
160
+ if (jwk.kty !== 'RSA') {
161
+ throw new CodeError('invalid key type', 'ERR_INVALID_KEY_TYPE')
162
+ } else if (jwk.n == null) {
163
+ throw new CodeError('invalid key modulus', 'ERR_INVALID_KEY_MODULUS')
164
+ }
165
+ const bytes = uint8ArrayFromString(jwk.n, 'base64url')
166
+ return bytes.length * 8
167
+ }
@@ -1,5 +1,4 @@
1
-
2
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
3
2
  import { sha256 } from 'multiformats/hashes/sha2'
4
3
  // @ts-expect-error types are missing
5
4
  import forge from 'node-forge/lib/forge.js'
@@ -11,6 +10,8 @@ import * as pbm from './keys.js'
11
10
  import * as crypto from './rsa.js'
12
11
  import type { Multibase } from 'multiformats'
13
12
 
13
+ export const MAX_KEY_SIZE = 8192
14
+
14
15
  export class RsaPublicKey {
15
16
  private readonly _key: JsonWebKey
16
17
 
@@ -136,21 +137,42 @@ export class RsaPrivateKey {
136
137
 
137
138
  export async function unmarshalRsaPrivateKey (bytes: Uint8Array): Promise<RsaPrivateKey> {
138
139
  const jwk = crypto.utils.pkcs1ToJwk(bytes)
140
+
141
+ if (crypto.keySize(jwk) > MAX_KEY_SIZE) {
142
+ throw new CodeError('key size is too large', 'ERR_KEY_SIZE_TOO_LARGE')
143
+ }
144
+
139
145
  const keys = await crypto.unmarshalPrivateKey(jwk)
146
+
140
147
  return new RsaPrivateKey(keys.privateKey, keys.publicKey)
141
148
  }
142
149
 
143
150
  export function unmarshalRsaPublicKey (bytes: Uint8Array): RsaPublicKey {
144
151
  const jwk = crypto.utils.pkixToJwk(bytes)
152
+
153
+ if (crypto.keySize(jwk) > MAX_KEY_SIZE) {
154
+ throw new CodeError('key size is too large', 'ERR_KEY_SIZE_TOO_LARGE')
155
+ }
156
+
145
157
  return new RsaPublicKey(jwk)
146
158
  }
147
159
 
148
160
  export async function fromJwk (jwk: JsonWebKey): Promise<RsaPrivateKey> {
161
+ if (crypto.keySize(jwk) > MAX_KEY_SIZE) {
162
+ throw new CodeError('key size is too large', 'ERR_KEY_SIZE_TOO_LARGE')
163
+ }
164
+
149
165
  const keys = await crypto.unmarshalPrivateKey(jwk)
166
+
150
167
  return new RsaPrivateKey(keys.privateKey, keys.publicKey)
151
168
  }
152
169
 
153
170
  export async function generateKeyPair (bits: number): Promise<RsaPrivateKey> {
171
+ if (bits > MAX_KEY_SIZE) {
172
+ throw new CodeError('key size is too large', 'ERR_KEY_SIZE_TOO_LARGE')
173
+ }
174
+
154
175
  const keys = await crypto.generateKey(bits)
176
+
155
177
  return new RsaPrivateKey(keys.privateKey, keys.publicKey)
156
178
  }
@@ -1,6 +1,6 @@
1
1
  import 'node-forge/lib/asn1.js'
2
2
  import 'node-forge/lib/rsa.js'
3
- import { CodeError } from '@libp2p/interfaces/errors'
3
+ import { CodeError } from '@libp2p/interface/errors'
4
4
  // @ts-expect-error types are missing
5
5
  import forge from 'node-forge/lib/forge.js'
6
6
  import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
package/src/keys/rsa.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import crypto from 'crypto'
2
2
  import { promisify } from 'util'
3
- import { CodeError } from '@libp2p/interfaces/errors'
3
+ import { CodeError } from '@libp2p/interface/errors'
4
4
  import randomBytes from '../random-bytes.js'
5
5
  import * as utils from './rsa-utils.js'
6
6
  import type { JWKKeyPair } from './interface.js'
@@ -67,3 +67,13 @@ export function decrypt (key: JsonWebKey, bytes: Uint8Array): Uint8Array {
67
67
  // @ts-expect-error node types are missing jwk as a format
68
68
  return crypto.privateDecrypt({ format: 'jwk', key, padding }, bytes)
69
69
  }
70
+
71
+ export function keySize (jwk: JsonWebKey): number {
72
+ if (jwk.kty !== 'RSA') {
73
+ throw new CodeError('invalid key type', 'ERR_INVALID_KEY_TYPE')
74
+ } else if (jwk.n == null) {
75
+ throw new CodeError('invalid key modulus', 'ERR_INVALID_KEY_MODULUS')
76
+ }
77
+ const modulus = Buffer.from(jwk.n, 'base64')
78
+ return modulus.length * 8
79
+ }
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import { sha256 } from 'multiformats/hashes/sha2'
3
3
  import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
4
4
  import { toString as uint8ArrayToString } from 'uint8arrays/to-string'
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import * as secp from '@noble/secp256k1'
3
3
  import { sha256 } from 'multiformats/hashes/sha2'
4
4
 
package/src/pbkdf2.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  // @ts-expect-error types are missing
3
3
  import forgePbkdf2 from 'node-forge/lib/pbkdf2.js'
4
4
  // @ts-expect-error types are missing
@@ -1,4 +1,4 @@
1
- import { CodeError } from '@libp2p/interfaces/errors'
1
+ import { CodeError } from '@libp2p/interface/errors'
2
2
  import { utils } from '@noble/secp256k1'
3
3
 
4
4
  export default function randomBytes (length: number): Uint8Array {
@@ -1,41 +0,0 @@
1
- {
2
- "AESCipher": "https://libp2p.github.io/js-libp2p-crypto/interfaces/aes.AESCipher.html",
3
- "create": "https://libp2p.github.io/js-libp2p-crypto/functions/aes.create.html",
4
- "HMAC": "https://libp2p.github.io/js-libp2p-crypto/interfaces/hmac.HMAC.html",
5
- "pbkdf2": "https://libp2p.github.io/js-libp2p-crypto/functions/index.pbkdf2.html",
6
- "randomBytes": "https://libp2p.github.io/js-libp2p-crypto/functions/index.randomBytes.html",
7
- "Ed25519PrivateKey": "https://libp2p.github.io/js-libp2p-crypto/classes/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_ed25519_class_.Ed25519PrivateKey.html",
8
- "Ed25519PublicKey": "https://libp2p.github.io/js-libp2p-crypto/classes/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_ed25519_class_.Ed25519PublicKey.html",
9
- "generateKeyPair": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_ed25519_class_.generateKeyPair.html",
10
- "generateKeyPairFromSeed": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_ed25519_class_.generateKeyPairFromSeed.html",
11
- "unmarshalEd25519PrivateKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_ed25519_class_.unmarshalEd25519PrivateKey.html",
12
- "unmarshalEd25519PublicKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_ed25519_class_.unmarshalEd25519PublicKey.html",
13
- "RsaPrivateKey": "https://libp2p.github.io/js-libp2p-crypto/classes/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_rsa_class_.RsaPrivateKey.html",
14
- "RsaPublicKey": "https://libp2p.github.io/js-libp2p-crypto/classes/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_rsa_class_.RsaPublicKey.html",
15
- "fromJwk": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_rsa_class_.fromJwk.html",
16
- "unmarshalRsaPrivateKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_rsa_class_.unmarshalRsaPrivateKey.html",
17
- "unmarshalRsaPublicKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_rsa_class_.unmarshalRsaPublicKey.html",
18
- "Secp256k1PrivateKey": "https://libp2p.github.io/js-libp2p-crypto/classes/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_secp256k1_class_.Secp256k1PrivateKey.html",
19
- "Secp256k1PublicKey": "https://libp2p.github.io/js-libp2p-crypto/classes/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_secp256k1_class_.Secp256k1PublicKey.html",
20
- "unmarshalSecp256k1PrivateKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_secp256k1_class_.unmarshalSecp256k1PrivateKey.html",
21
- "unmarshalSecp256k1PublicKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys._internal_.__home_runner_work_js_libp2p_crypto_js_libp2p_crypto_src_keys_secp256k1_class_.unmarshalSecp256k1PublicKey.html",
22
- "ECDHKey": "https://libp2p.github.io/js-libp2p-crypto/interfaces/keys._internal_.ECDHKey.html",
23
- "ECDHKeyPair": "https://libp2p.github.io/js-libp2p-crypto/interfaces/keys._internal_.ECDHKeyPair.html",
24
- "EnhancedKey": "https://libp2p.github.io/js-libp2p-crypto/interfaces/keys._internal_.EnhancedKey.html",
25
- "EnhancedKeyPair": "https://libp2p.github.io/js-libp2p-crypto/interfaces/keys._internal_.EnhancedKeyPair.html",
26
- "codec": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.keysPBM.KeyType.codec.html",
27
- "decode": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.keysPBM.PrivateKey.decode.html",
28
- "encode": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.keysPBM.PrivateKey.encode.html",
29
- "KeyType": "https://libp2p.github.io/js-libp2p-crypto/enums/keys.keysPBM.KeyType-1.html",
30
- "PrivateKey": "https://libp2p.github.io/js-libp2p-crypto/interfaces/keys.keysPBM.PrivateKey-1.html",
31
- "PublicKey": "https://libp2p.github.io/js-libp2p-crypto/interfaces/keys.keysPBM.PublicKey-1.html",
32
- "KeyTypes": "https://libp2p.github.io/js-libp2p-crypto/types/keys.KeyTypes.html",
33
- "supportedKeys": "https://libp2p.github.io/js-libp2p-crypto/variables/keys.supportedKeys.html",
34
- "generateEphemeralKeyPair": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.generateEphemeralKeyPair.html",
35
- "importKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.importKey.html",
36
- "keyStretcher": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.keyStretcher.html",
37
- "marshalPrivateKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.marshalPrivateKey.html",
38
- "marshalPublicKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.marshalPublicKey.html",
39
- "unmarshalPrivateKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.unmarshalPrivateKey.html",
40
- "unmarshalPublicKey": "https://libp2p.github.io/js-libp2p-crypto/functions/keys.unmarshalPublicKey.html"
41
- }