@libp2p/crypto 5.1.25 → 5.2.0-aa5ba42d0

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.
@@ -8,7 +8,7 @@
8
8
  * For encryption / decryption support, RSA keys should be used.
9
9
  */
10
10
  import type { Curve } from './ecdsa/index.ts';
11
- import type { PrivateKey, PublicKey, KeyType, RSAPrivateKey, Secp256k1PrivateKey, Ed25519PrivateKey, Secp256k1PublicKey, Ed25519PublicKey, ECDSAPrivateKey, ECDSAPublicKey } from '@libp2p/interface';
11
+ import type { AbortOptions, PeerId, PrivateKey, PublicKey, KeyType, RSAPrivateKey, Secp256k1PrivateKey, Ed25519PrivateKey, Secp256k1PublicKey, Ed25519PublicKey, ECDSAPrivateKey, ECDSAPublicKey } from '@libp2p/interface';
12
12
  import type { MultihashDigest } from 'multiformats';
13
13
  import type { Digest } from 'multiformats/hashes/digest';
14
14
  export { generateEphemeralKeyPair } from './ecdh/index.ts';
@@ -57,6 +57,15 @@ export declare function publicKeyFromMultihash(digest: MultihashDigest<0x0>): Ed
57
57
  * Converts a public key object into a protobuf serialized public key
58
58
  */
59
59
  export declare function publicKeyToProtobuf(key: PublicKey): Uint8Array;
60
+ /**
61
+ * Returns a public key for the peer that is safe for verifying its signatures.
62
+ *
63
+ * A supplied key must derive to the peer id, otherwise `InvalidPublicKeyError`
64
+ * is thrown, even if the peer id embeds a key. With no supplied key the key
65
+ * inlined in the peer id is returned, or `InvalidPublicKeyError` is thrown if
66
+ * there is none. Malformed key bytes also throw `InvalidPublicKeyError`.
67
+ */
68
+ export declare function publicKeyForPeer(peer: Pick<PeerId, 'publicKey' | 'toMultihash'>, key?: Uint8Array | PublicKey, options?: AbortOptions): Promise<PublicKey>;
60
69
  /**
61
70
  * Converts a protobuf serialized private key into its representative object
62
71
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrM,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAExD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,YAAY,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;GAEG;AACH,wBAAsB,eAAe,CAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AACnF,wBAAsB,eAAe,CAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AACvF,wBAAsB,eAAe,CAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;AAC9F,wBAAsB,eAAe,CAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAC1F,wBAAsB,eAAe,CAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAqBzF;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;AAC7G,wBAAsB,uBAAuB,CAAE,CAAC,SAAS,OAAO,EAAG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAS5H;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAE,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,CAgB9F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,SAAS,CAmB5D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAE,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,cAAc,CAc5H;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,SAAS,GAAG,UAAU,CAK/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAE,GAAG,EAAE,UAAU,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,aAAa,GAAG,eAAe,CAgBlI;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAmB9D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAKjE;AA0BD;;GAEG;AACH,wBAAsB,yBAAyB,CAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CA4B/F;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAc9F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,8 @@
7
7
  *
8
8
  * For encryption / decryption support, RSA keys should be used.
9
9
  */
10
- import { InvalidParametersError, UnsupportedKeyTypeError } from '@libp2p/interface';
10
+ import { InvalidParametersError, InvalidPublicKeyError, UnsupportedKeyTypeError } from '@libp2p/interface';
11
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
11
12
  import { ECDSAPrivateKey as ECDSAPrivateKeyClass } from "./ecdsa/ecdsa.js";
12
13
  import { ECDSA_P_256_OID, ECDSA_P_384_OID, ECDSA_P_521_OID } from "./ecdsa/index.js";
13
14
  import { generateECDSAKeyPair, pkiMessageToECDSAPrivateKey, pkiMessageToECDSAPublicKey, unmarshalECDSAPrivateKey, unmarshalECDSAPublicKey } from "./ecdsa/utils.js";
@@ -117,6 +118,34 @@ export function publicKeyToProtobuf(key) {
117
118
  Data: key.raw
118
119
  });
119
120
  }
121
+ /**
122
+ * Returns a public key for the peer that is safe for verifying its signatures.
123
+ *
124
+ * A supplied key must derive to the peer id, otherwise `InvalidPublicKeyError`
125
+ * is thrown, even if the peer id embeds a key. With no supplied key the key
126
+ * inlined in the peer id is returned, or `InvalidPublicKeyError` is thrown if
127
+ * there is none. Malformed key bytes also throw `InvalidPublicKeyError`.
128
+ */
129
+ export async function publicKeyForPeer(peer, key, options) {
130
+ options?.signal?.throwIfAborted();
131
+ if (key != null) {
132
+ let publicKey;
133
+ try {
134
+ publicKey = key instanceof Uint8Array ? publicKeyFromProtobuf(key) : key;
135
+ }
136
+ catch (err) {
137
+ throw new InvalidPublicKeyError(`Could not decode public key - ${err.message}`);
138
+ }
139
+ if (!uint8ArrayEquals(publicKey.toMultihash().bytes, peer.toMultihash().bytes)) {
140
+ throw new InvalidPublicKeyError('Public key does not match peer id');
141
+ }
142
+ return publicKey;
143
+ }
144
+ if (peer.publicKey == null) {
145
+ throw new InvalidPublicKeyError('No public key available for peer id');
146
+ }
147
+ return peer.publicKey;
148
+ }
120
149
  /**
121
150
  * Converts a protobuf serialized private key into its representative object
122
151
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keys/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,eAAe,IAAI,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA;AACnK,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,eAAe,IAAI,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAC3H,OAAO,EAAE,sBAAsB,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AAClJ,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACzK,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,EAAE,eAAe,IAAI,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AACjI,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAM1H,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAUjD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAE,IAAa,EAAE,IAAsB;IAC1E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,sBAAsB,EAAE,CAAA;IACjC,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,OAAO,wBAAwB,EAAE,CAAA;IACnC,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,IAAI,uBAAuB,EAAE,CAAA;AACrC,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAE,IAAY,EAAE,IAAgB;IAC3E,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,uBAAuB,CAAC,qDAAqD,CAAC,CAAA;IAC1F,CAAC;IAED,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAA;AAC7C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAE,GAAe,EAAE,MAA2B;IACjF,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,EAAE,CAAA;IAErC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG;YACjB,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO;YACrB,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAA;QACxC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS;YACvB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAA;QAC1C,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK;YACnB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;QACtC;YACE,MAAM,IAAI,uBAAuB,EAAE,CAAA;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAE,GAAe;IAC/C,IAAI,GAAG,CAAC,UAAU,KAAK,sBAAsB,EAAE,CAAC;QAC9C,OAAO,yBAAyB,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,wBAAwB,EAAE,CAAC;QACvD,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEhC,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACjG,OAAO,0BAA0B,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,oBAAoB,EAAE,CAAC;QAC7C,OAAO,yBAAyB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,6CAA6C,CAAC,CAAA;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAE,MAA4B;IAClE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACzD,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,UAAU,EAAE,CAAA;IAErC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO;YACrB,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAA;QACxC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS;YACvB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAA;QAC1C,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK;YACnB,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;QACtC;YACE,MAAM,IAAI,uBAAuB,EAAE,CAAA;IACvC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAE,GAAc;IACjD,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,GAAG,CAAC,GAAG;KACd,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAE,IAA+C,EAAE,GAA4B,EAAE,OAAsB;IAC3I,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAEjC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,IAAI,SAAoB,CAAA;QAExB,IAAI,CAAC;YACH,SAAS,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAC1E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,qBAAqB,CAAC,iCAAiC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;QACjF,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,qBAAqB,CAAC,mCAAmC,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QAC3B,MAAM,IAAI,qBAAqB,CAAC,qCAAqC,CAAC,CAAA;IACxE,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAA;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAE,GAAe;IACrD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,UAAU,EAAE,CAAA;IAE7C,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG;YACjB,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACnC,KAAK,EAAE,CAAC,OAAO,CAAC,OAAO;YACrB,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAA;QACzC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS;YACvB,OAAO,4BAA4B,CAAC,IAAI,CAAC,CAAA;QAC3C,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK;YACnB,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAA;QACvC;YACE,MAAM,IAAI,uBAAuB,EAAE,CAAA;IACvC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAE,GAAe;IAChD,IAAI,GAAG,CAAC,UAAU,KAAK,uBAAuB,EAAE,CAAC;QAC/C,OAAO,0BAA0B,CAAC,GAAG,CAAC,CAAA;IACxC,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,KAAK,yBAAyB,EAAE,CAAC;QACxD,OAAO,4BAA4B,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAEhC,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,eAAe,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;QACjG,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,8CAA8C,CAAC,CAAA;AAClF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAE,GAAe;IACnD,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAC1B,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,GAAG,CAAC,GAAG;KACd,CAAC,CAAA;AACJ,CAAC;AAED,SAAS,MAAM,CAAE,IAAS;IACxB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;AAC3B,CAAC;AAED,SAAS,OAAO,CAAE,KAAU;IAC1B,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACvC,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,oDAAoD,CAAC,CAAA;AACxF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAE,UAAsB;IACrE,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO;YACL,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE;gBAC/D,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1B,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;gBACxE,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC1B,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;SACrB,CAAA;IACH,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO;YACL,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE;gBAC/D,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO;aAC1C,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;YAClB,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;gBACxE,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO;aACpD,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;SACrB,CAAA;IACH,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,uCAAuC,CAAC,CAAA;AAC3E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAE,OAAsB;IACvE,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAEpE,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;QAEpE,OAAO,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,MAAM,IAAI,sBAAsB,CAAC,uCAAuC,CAAC,CAAA;AAC3E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/crypto",
3
- "version": "5.1.25",
3
+ "version": "5.2.0-aa5ba42d0",
4
4
  "description": "Crypto primitives for libp2p",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/crypto#readme",
@@ -90,7 +90,7 @@
90
90
  "generate": "protons ./src/keys/keys.proto"
91
91
  },
92
92
  "dependencies": {
93
- "@libp2p/interface": "^3.4.0",
93
+ "@libp2p/interface": "3.4.0-aa5ba42d0",
94
94
  "@noble/curves": "^2.0.1",
95
95
  "@noble/hashes": "^2.0.1",
96
96
  "multiformats": "^14.0.0",
package/src/keys/index.ts CHANGED
@@ -8,7 +8,8 @@
8
8
  * For encryption / decryption support, RSA keys should be used.
9
9
  */
10
10
 
11
- import { InvalidParametersError, UnsupportedKeyTypeError } from '@libp2p/interface'
11
+ import { InvalidParametersError, InvalidPublicKeyError, UnsupportedKeyTypeError } from '@libp2p/interface'
12
+ import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
12
13
  import { ECDSAPrivateKey as ECDSAPrivateKeyClass } from './ecdsa/ecdsa.ts'
13
14
  import { ECDSA_P_256_OID, ECDSA_P_384_OID, ECDSA_P_521_OID } from './ecdsa/index.ts'
14
15
  import { generateECDSAKeyPair, pkiMessageToECDSAPrivateKey, pkiMessageToECDSAPublicKey, unmarshalECDSAPrivateKey, unmarshalECDSAPublicKey } from './ecdsa/utils.ts'
@@ -21,7 +22,7 @@ import { pkcs1ToRSAPrivateKey, pkixToRSAPublicKey, generateRSAKeyPair, pkcs1Mess
21
22
  import { privateKeyLength as secp256k1PrivateKeyLength, publicKeyLength as secp256k1PublicKeyLength } from './secp256k1/index.ts'
22
23
  import { generateSecp256k1KeyPair, unmarshalSecp256k1PrivateKey, unmarshalSecp256k1PublicKey } from './secp256k1/utils.ts'
23
24
  import type { Curve } from './ecdsa/index.ts'
24
- import type { PrivateKey, PublicKey, KeyType, RSAPrivateKey, Secp256k1PrivateKey, Ed25519PrivateKey, Secp256k1PublicKey, Ed25519PublicKey, ECDSAPrivateKey, ECDSAPublicKey } from '@libp2p/interface'
25
+ import type { AbortOptions, PeerId, PrivateKey, PublicKey, KeyType, RSAPrivateKey, Secp256k1PrivateKey, Ed25519PrivateKey, Secp256k1PublicKey, Ed25519PublicKey, ECDSAPrivateKey, ECDSAPublicKey } from '@libp2p/interface'
25
26
  import type { MultihashDigest } from 'multiformats'
26
27
  import type { Digest } from 'multiformats/hashes/digest'
27
28
 
@@ -158,6 +159,40 @@ export function publicKeyToProtobuf (key: PublicKey): Uint8Array {
158
159
  })
159
160
  }
160
161
 
162
+ /**
163
+ * Returns a public key for the peer that is safe for verifying its signatures.
164
+ *
165
+ * A supplied key must derive to the peer id, otherwise `InvalidPublicKeyError`
166
+ * is thrown, even if the peer id embeds a key. With no supplied key the key
167
+ * inlined in the peer id is returned, or `InvalidPublicKeyError` is thrown if
168
+ * there is none. Malformed key bytes also throw `InvalidPublicKeyError`.
169
+ */
170
+ export async function publicKeyForPeer (peer: Pick<PeerId, 'publicKey' | 'toMultihash'>, key?: Uint8Array | PublicKey, options?: AbortOptions): Promise<PublicKey> {
171
+ options?.signal?.throwIfAborted()
172
+
173
+ if (key != null) {
174
+ let publicKey: PublicKey
175
+
176
+ try {
177
+ publicKey = key instanceof Uint8Array ? publicKeyFromProtobuf(key) : key
178
+ } catch (err: any) {
179
+ throw new InvalidPublicKeyError(`Could not decode public key - ${err.message}`)
180
+ }
181
+
182
+ if (!uint8ArrayEquals(publicKey.toMultihash().bytes, peer.toMultihash().bytes)) {
183
+ throw new InvalidPublicKeyError('Public key does not match peer id')
184
+ }
185
+
186
+ return publicKey
187
+ }
188
+
189
+ if (peer.publicKey == null) {
190
+ throw new InvalidPublicKeyError('No public key available for peer id')
191
+ }
192
+
193
+ return peer.publicKey
194
+ }
195
+
161
196
  /**
162
197
  * Converts a protobuf serialized private key into its representative object
163
198
  */
@@ -1,41 +0,0 @@
1
- {
2
- "AESCipher": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.ciphers.AES_GCM.AESCipher.html",
3
- "CreateAESCipherOptions": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.ciphers.AES_GCM.CreateAESCipherOptions.html",
4
- "create": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.ciphers.AES_GCM.create.html",
5
- "HMAC": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.hmac.HMAC.html",
6
- "./hmac:HMAC": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.hmac.HMAC.html",
7
- "./hmac:create": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.hmac.create.html",
8
- "pbkdf2": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.index.pbkdf2.html",
9
- "randomBytes": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.index.randomBytes.html",
10
- "ECDHKey": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.keys.ECDHKey.html",
11
- "ECDHKeyPair": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.keys.ECDHKeyPair.html",
12
- "EnhancedKey": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.keys.EnhancedKey.html",
13
- "EnhancedKeyPair": "https://libp2p.github.io/js-libp2p/interfaces/_libp2p_crypto.keys.EnhancedKeyPair.html",
14
- "Curve": "https://libp2p.github.io/js-libp2p/types/_libp2p_crypto.keys.Curve.html",
15
- "generateEphemeralKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.generateEphemeralKeyPair.html",
16
- "generateKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.generateKeyPair.html",
17
- "./keys:generateKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.generateKeyPair.html",
18
- "generateKeyPairFromSeed": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.generateKeyPairFromSeed.html",
19
- "./keys:generateKeyPairFromSeed": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.generateKeyPairFromSeed.html",
20
- "keyStretcher": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.keyStretcher.html",
21
- "privateKeyFromCryptoKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyFromCryptoKeyPair.html",
22
- "./keys:privateKeyFromCryptoKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyFromCryptoKeyPair.html",
23
- "privateKeyFromProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyFromProtobuf.html",
24
- "./keys:privateKeyFromProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyFromProtobuf.html",
25
- "privateKeyFromRaw": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyFromRaw.html",
26
- "./keys:privateKeyFromRaw": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyFromRaw.html",
27
- "privateKeyToCryptoKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyToCryptoKeyPair.html",
28
- "./keys:privateKeyToCryptoKeyPair": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyToCryptoKeyPair.html",
29
- "privateKeyToProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyToProtobuf.html",
30
- "./keys:privateKeyToProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.privateKeyToProtobuf.html",
31
- "publicKeyFromMultihash": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyFromMultihash.html",
32
- "./keys:publicKeyFromMultihash": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyFromMultihash.html",
33
- "publicKeyFromProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyFromProtobuf.html",
34
- "./keys:publicKeyFromProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyFromProtobuf.html",
35
- "publicKeyFromRaw": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyFromRaw.html",
36
- "./keys:publicKeyFromRaw": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyFromRaw.html",
37
- "publicKeyToProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyToProtobuf.html",
38
- "./keys:publicKeyToProtobuf": "https://libp2p.github.io/js-libp2p/functions/_libp2p_crypto.keys.publicKeyToProtobuf.html",
39
- "default": "https://libp2p.github.io/js-libp2p/variables/_libp2p_crypto.webcrypto.default.html",
40
- "./webcrypto:default": "https://libp2p.github.io/js-libp2p/variables/_libp2p_crypto.webcrypto.default.html"
41
- }