@libp2p/interface 2.7.0-a7ab9a41b → 2.7.0-fc5122110
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/dist/index.min.js +1 -1
- package/dist/src/keys.d.ts +61 -3
- package/dist/src/keys.d.ts.map +1 -1
- package/dist/src/keys.js +2 -2
- package/dist/src/keys.js.map +1 -1
- package/package.json +1 -1
- package/src/keys.ts +75 -5
package/dist/index.min.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PInterface = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2PInterface=(()=>{var n=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var W=Object.prototype.hasOwnProperty;var X=(t,r)=>{for(var e in r)n(t,e,{get:r[e],enumerable:!0})},Y=(t,r,e,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of V(r))!W.call(t,o)&&o!==e&&n(t,o,{get:()=>r[o],enumerable:!(s=Q(r,o))||s.enumerable});return t};var Z=t=>Y(n({},"__esModule",{value:!0}),t);var dr={};X(dr,{AbortError:()=>c,AlreadyStartedError:()=>
|
|
2
|
+
"use strict";var Libp2PInterface=(()=>{var n=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var W=Object.prototype.hasOwnProperty;var X=(t,r)=>{for(var e in r)n(t,e,{get:r[e],enumerable:!0})},Y=(t,r,e,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of V(r))!W.call(t,o)&&o!==e&&n(t,o,{get:()=>r[o],enumerable:!(s=Q(r,o))||s.enumerable});return t};var Z=t=>Y(n({},"__esModule",{value:!0}),t);var dr={};X(dr,{AbortError:()=>c,AlreadyStartedError:()=>M,ConnectionClosedError:()=>E,ConnectionClosingError:()=>f,ConnectionFailedError:()=>h,DialError:()=>U,FaultTolerance:()=>i,InvalidCIDError:()=>P,InvalidCryptoExchangeError:()=>l,InvalidMessageError:()=>C,InvalidMultiaddrError:()=>g,InvalidMultihashError:()=>A,InvalidParametersError:()=>u,InvalidPeerIdError:()=>I,InvalidPrivateKeyError:()=>x,InvalidPublicKeyError:()=>m,KEEP_ALIVE:()=>sr,LimitedConnectionError:()=>K,ListenError:()=>N,MuxerClosedError:()=>b,NotFoundError:()=>v,NotStartedError:()=>D,ProtocolError:()=>w,StreamResetError:()=>S,StreamStateError:()=>y,StrictNoSign:()=>ar,StrictSign:()=>nr,TimeoutError:()=>T,TooManyInboundProtocolStreamsError:()=>R,TooManyOutboundProtocolStreamsError:()=>_,TopicValidatorResult:()=>a,TypedEventEmitter:()=>F,UnexpectedPeerError:()=>p,UnsupportedKeyTypeError:()=>B,UnsupportedOperationError:()=>d,UnsupportedProtocolError:()=>L,connectionSymbol:()=>j,contentRoutingSymbol:()=>k,isConnection:()=>$,isPeerId:()=>er,isPrivateKey:()=>rr,isPubSub:()=>ir,isPublicKey:()=>q,isStartable:()=>O,isTransport:()=>cr,peerDiscoverySymbol:()=>tr,peerIdSymbol:()=>z,peerRoutingSymbol:()=>or,pubSubSymbol:()=>G,serviceCapabilities:()=>mr,serviceDependencies:()=>xr,setMaxListeners:()=>pr,start:()=>lr,stop:()=>ur,transportSymbol:()=>H});var j=Symbol.for("@libp2p/connection");function $(t){return t!=null&&!!t[j]}var k=Symbol.for("@libp2p/content-routing");function q(t){return t==null?!1:(t.type==="RSA"||t.type==="Ed25519"||t.type==="secp256k1"||t.type==="ECDSA")&&t.raw instanceof Uint8Array&&typeof t.equals=="function"&&typeof t.toMultihash=="function"&&typeof t.toCID=="function"&&typeof t.verify=="function"}function rr(t){return t==null?!1:(t.type==="RSA"||t.type==="Ed25519"||t.type==="secp256k1"||t.type==="ECDSA")&&q(t.publicKey)&&t.raw instanceof Uint8Array&&typeof t.equals=="function"&&typeof t.sign=="function"}var tr=Symbol.for("@libp2p/peer-discovery");var z=Symbol.for("@libp2p/peer-id");function er(t){return!!t?.[z]}var or=Symbol.for("@libp2p/peer-routing");var sr="keep-alive";var nr="StrictSign",ar="StrictNoSign",a;(function(t){t.Accept="accept",t.Ignore="ignore",t.Reject="reject"})(a||(a={}));var G=Symbol.for("@libp2p/pubsub");function ir(t){return!!t?.[G]}var H=Symbol.for("@libp2p/transport");function cr(t){return t!=null&&!!t[H]}var i;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(i||(i={}));var c=class extends Error{static name="AbortError";constructor(r="The operation was aborted"){super(r),this.name="AbortError"}},p=class extends Error{static name="UnexpectedPeerError";constructor(r="Unexpected Peer"){super(r),this.name="UnexpectedPeerError"}},l=class extends Error{static name="InvalidCryptoExchangeError";constructor(r="Invalid crypto exchange"){super(r),this.name="InvalidCryptoExchangeError"}},u=class extends Error{static name="InvalidParametersError";constructor(r="Invalid parameters"){super(r),this.name="InvalidParametersError"}},m=class extends Error{static name="InvalidPublicKeyError";constructor(r="Invalid public key"){super(r),this.name="InvalidPublicKeyError"}},x=class extends Error{static name="InvalidPrivateKeyError";constructor(r="Invalid private key"){super(r),this.name="InvalidPrivateKeyError"}},d=class extends Error{static name="UnsupportedOperationError";constructor(r="Unsupported operation"){super(r),this.name="UnsupportedOperationError"}},f=class extends Error{static name="ConnectionClosingError";constructor(r="The connection is closing"){super(r),this.name="ConnectionClosingError"}},E=class extends Error{static name="ConnectionClosedError";constructor(r="The connection is closed"){super(r),this.name="ConnectionClosedError"}},h=class extends Error{static name="ConnectionFailedError";constructor(r="Connection failed"){super(r),this.name="ConnectionFailedError"}},b=class extends Error{static name="MuxerClosedError";constructor(r="The muxer is closed"){super(r),this.name="MuxerClosedError"}},S=class extends Error{static name="StreamResetError";constructor(r="The stream has been reset"){super(r),this.name="StreamResetError"}},y=class extends Error{static name="StreamStateError";constructor(r="The stream is in an invalid state"){super(r),this.name="StreamStateError"}},v=class extends Error{static name="NotFoundError";constructor(r="Not found"){super(r),this.name="NotFoundError"}},I=class extends Error{static name="InvalidPeerIdError";constructor(r="Invalid PeerID"){super(r),this.name="InvalidPeerIdError"}},g=class extends Error{static name="InvalidMultiaddrError";constructor(r="Invalid multiaddr"){super(r),this.name="InvalidMultiaddrError"}},P=class extends Error{static name="InvalidCIDError";constructor(r="Invalid CID"){super(r),this.name="InvalidCIDError"}},A=class extends Error{static name="InvalidMultihashError";constructor(r="Invalid Multihash"){super(r),this.name="InvalidMultihashError"}},L=class extends Error{static name="UnsupportedProtocolError";constructor(r="Unsupported protocol error"){super(r),this.name="UnsupportedProtocolError"}},C=class extends Error{static name="InvalidMessageError";constructor(r="Invalid message"){super(r),this.name="InvalidMessageError"}},w=class extends Error{static name="ProtocolError";constructor(r="Protocol error"){super(r),this.name="ProtocolError"}},T=class extends Error{static name="TimeoutError";constructor(r="Timed out"){super(r),this.name="TimeoutError"}},D=class extends Error{static name="NotStartedError";constructor(r="Not started"){super(r),this.name="NotStartedError"}},M=class extends Error{static name="AlreadyStartedError";constructor(r="Already started"){super(r),this.name="AlreadyStartedError"}},U=class extends Error{static name="DialError";constructor(r="Dial error"){super(r),this.name="DialError"}},N=class extends Error{static name="ListenError";constructor(r="Listen error"){super(r),this.name="ListenError"}},K=class extends Error{static name="LimitedConnectionError";constructor(r="Limited connection"){super(r),this.name="LimitedConnectionError"}},R=class extends Error{static name="TooManyInboundProtocolStreamsError";constructor(r="Too many inbound protocol streams"){super(r),this.name="TooManyInboundProtocolStreamsError"}},_=class extends Error{static name="TooManyOutboundProtocolStreamsError";constructor(r="Too many outbound protocol streams"){super(r),this.name="TooManyOutboundProtocolStreamsError"}},B=class extends Error{static name="UnsupportedKeyTypeError";constructor(r="Unsupported key type"){super(r),this.name="UnsupportedKeyTypeError"}};function pr(){}var F=class extends EventTarget{#r=new Map;constructor(){super()}listenerCount(r){let e=this.#r.get(r);return e==null?0:e.length}addEventListener(r,e,s){super.addEventListener(r,e,s);let o=this.#r.get(r);o==null&&(o=[],this.#r.set(r,o)),o.push({callback:e,once:(s!==!0&&s!==!1&&s?.once)??!1})}removeEventListener(r,e,s){super.removeEventListener(r.toString(),e??null,s);let o=this.#r.get(r);o!=null&&(o=o.filter(({callback:J})=>J!==e),this.#r.set(r,o))}dispatchEvent(r){let e=super.dispatchEvent(r),s=this.#r.get(r.type);return s==null||(s=s.filter(({once:o})=>!o),this.#r.set(r.type,s)),e}safeDispatchEvent(r,e={}){return this.dispatchEvent(new CustomEvent(r,e))}};function O(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}async function lr(...t){let r=[];for(let e of t)O(e)&&r.push(e);await Promise.all(r.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(r.map(async e=>{await e.start()})),await Promise.all(r.map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async function ur(...t){let r=[];for(let e of t)O(e)&&r.push(e);await Promise.all(r.map(async e=>{e.beforeStop!=null&&await e.beforeStop()})),await Promise.all(r.map(async e=>{await e.stop()})),await Promise.all(r.map(async e=>{e.afterStop!=null&&await e.afterStop()}))}var mr=Symbol.for("@libp2p/service-capabilities"),xr=Symbol.for("@libp2p/service-dependencies");return Z(dr);})();
|
|
3
3
|
return Libp2PInterface}));
|
package/dist/src/keys.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CID } from 'multiformats/cid';
|
|
2
2
|
import type { MultihashDigest } from 'multiformats/hashes/interface';
|
|
3
3
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
4
|
-
export type KeyType = 'RSA' | 'Ed25519' | 'secp256k1';
|
|
4
|
+
export type KeyType = 'RSA' | 'Ed25519' | 'secp256k1' | 'ECDSA';
|
|
5
5
|
export interface RSAPublicKey {
|
|
6
6
|
/**
|
|
7
7
|
* The type of this key
|
|
@@ -108,7 +108,42 @@ export interface Secp256k1PublicKey {
|
|
|
108
108
|
*/
|
|
109
109
|
toString(): string;
|
|
110
110
|
}
|
|
111
|
-
export
|
|
111
|
+
export interface ECDSAPublicKey {
|
|
112
|
+
/**
|
|
113
|
+
* The type of this key
|
|
114
|
+
*/
|
|
115
|
+
readonly type: 'ECDSA';
|
|
116
|
+
/**
|
|
117
|
+
* The raw public key bytes
|
|
118
|
+
*/
|
|
119
|
+
readonly raw: Uint8Array;
|
|
120
|
+
/**
|
|
121
|
+
* Returns `true` if the passed object matches this key
|
|
122
|
+
*/
|
|
123
|
+
equals(key?: any): boolean;
|
|
124
|
+
/**
|
|
125
|
+
* Returns this public key as an identity hash containing the protobuf wrapped
|
|
126
|
+
* public key
|
|
127
|
+
*/
|
|
128
|
+
toMultihash(): MultihashDigest<0x0>;
|
|
129
|
+
/**
|
|
130
|
+
* Return this public key as a CID encoded with the `libp2p-key` codec
|
|
131
|
+
*
|
|
132
|
+
* The digest contains an identity hash containing the protobuf wrapped
|
|
133
|
+
* version of the public key.
|
|
134
|
+
*/
|
|
135
|
+
toCID(): CID<unknown, 0x72, 0x0, 1>;
|
|
136
|
+
/**
|
|
137
|
+
* Verify the passed data was signed by the private key corresponding to this
|
|
138
|
+
* public key
|
|
139
|
+
*/
|
|
140
|
+
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array): boolean | Promise<boolean>;
|
|
141
|
+
/**
|
|
142
|
+
* Returns this key as a multihash with base58btc encoding
|
|
143
|
+
*/
|
|
144
|
+
toString(): string;
|
|
145
|
+
}
|
|
146
|
+
export type PublicKey = RSAPublicKey | Ed25519PublicKey | Secp256k1PublicKey | ECDSAPublicKey;
|
|
112
147
|
/**
|
|
113
148
|
* Returns true if the passed argument has type overlap with the `PublicKey`
|
|
114
149
|
* interface. Can be used to disambiguate object types.
|
|
@@ -186,7 +221,30 @@ export interface Secp256k1PrivateKey {
|
|
|
186
221
|
*/
|
|
187
222
|
sign(data: Uint8Array | Uint8ArrayList): Uint8Array | Promise<Uint8Array>;
|
|
188
223
|
}
|
|
189
|
-
export
|
|
224
|
+
export interface ECDSAPrivateKey {
|
|
225
|
+
/**
|
|
226
|
+
* The type of this key
|
|
227
|
+
*/
|
|
228
|
+
readonly type: 'ECDSA';
|
|
229
|
+
/**
|
|
230
|
+
* The public key that corresponds to this private key
|
|
231
|
+
*/
|
|
232
|
+
readonly publicKey: ECDSAPublicKey;
|
|
233
|
+
/**
|
|
234
|
+
* The raw private key bytes
|
|
235
|
+
*/
|
|
236
|
+
readonly raw: Uint8Array;
|
|
237
|
+
/**
|
|
238
|
+
* Returns `true` if the passed object matches this key
|
|
239
|
+
*/
|
|
240
|
+
equals(key?: any): boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Sign the passed data with this private key and return the signature for
|
|
243
|
+
* later verification
|
|
244
|
+
*/
|
|
245
|
+
sign(data: Uint8Array | Uint8ArrayList): Uint8Array | Promise<Uint8Array>;
|
|
246
|
+
}
|
|
247
|
+
export type PrivateKey = RSAPrivateKey | Ed25519PrivateKey | Secp256k1PrivateKey | ECDSAPrivateKey;
|
|
190
248
|
/**
|
|
191
249
|
* Returns true if the passed argument has type overlap with the `PrivateKey`
|
|
192
250
|
* interface. Can be used to disambiguate object types.
|
package/dist/src/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"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"}
|
package/dist/src/keys.js
CHANGED
|
@@ -6,7 +6,7 @@ export function isPublicKey(key) {
|
|
|
6
6
|
if (key == null) {
|
|
7
7
|
return false;
|
|
8
8
|
}
|
|
9
|
-
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1') &&
|
|
9
|
+
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1' || key.type === 'ECDSA') &&
|
|
10
10
|
key.raw instanceof Uint8Array &&
|
|
11
11
|
typeof key.equals === 'function' &&
|
|
12
12
|
typeof key.toMultihash === 'function' &&
|
|
@@ -21,7 +21,7 @@ export function isPrivateKey(key) {
|
|
|
21
21
|
if (key == null) {
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
|
-
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1') &&
|
|
24
|
+
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1' || key.type === 'ECDSA') &&
|
|
25
25
|
isPublicKey(key.publicKey) &&
|
|
26
26
|
key.raw instanceof Uint8Array &&
|
|
27
27
|
typeof key.equals === 'function' &&
|
package/dist/src/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/keys.ts"],"names":[],"mappings":"AAiLA;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAE,GAAS;IACpC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;QACvG,GAAG,CAAC,GAAG,YAAY,UAAU;QAC7B,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;QAChC,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU;QACrC,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU;QAC/B,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,CAAA;AACpC,CAAC;AAuHD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAE,GAAS;IACrC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;QACvG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC;QAC1B,GAAG,CAAC,GAAG,YAAY,UAAU;QAC7B,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;QAChC,OAAO,GAAG,CAAC,IAAI,KAAK,UAAU,CAAA;AAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/interface",
|
|
3
|
-
"version": "2.7.0-
|
|
3
|
+
"version": "2.7.0-fc5122110",
|
|
4
4
|
"description": "The interface implemented by a libp2p node",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/interface#readme",
|
package/src/keys.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { CID } from 'multiformats/cid'
|
|
|
2
2
|
import type { MultihashDigest } from 'multiformats/hashes/interface'
|
|
3
3
|
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
4
4
|
|
|
5
|
-
export type KeyType = 'RSA' | 'Ed25519' | 'secp256k1'
|
|
5
|
+
export type KeyType = 'RSA' | 'Ed25519' | 'secp256k1' | 'ECDSA'
|
|
6
6
|
|
|
7
7
|
export interface RSAPublicKey {
|
|
8
8
|
/**
|
|
@@ -131,7 +131,49 @@ export interface Secp256k1PublicKey {
|
|
|
131
131
|
toString(): string
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
export
|
|
134
|
+
export interface ECDSAPublicKey {
|
|
135
|
+
/**
|
|
136
|
+
* The type of this key
|
|
137
|
+
*/
|
|
138
|
+
readonly type: 'ECDSA'
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* The raw public key bytes
|
|
142
|
+
*/
|
|
143
|
+
readonly raw: Uint8Array
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Returns `true` if the passed object matches this key
|
|
147
|
+
*/
|
|
148
|
+
equals(key?: any): boolean
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Returns this public key as an identity hash containing the protobuf wrapped
|
|
152
|
+
* public key
|
|
153
|
+
*/
|
|
154
|
+
toMultihash(): MultihashDigest<0x0>
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Return this public key as a CID encoded with the `libp2p-key` codec
|
|
158
|
+
*
|
|
159
|
+
* The digest contains an identity hash containing the protobuf wrapped
|
|
160
|
+
* version of the public key.
|
|
161
|
+
*/
|
|
162
|
+
toCID(): CID<unknown, 0x72, 0x0, 1>
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Verify the passed data was signed by the private key corresponding to this
|
|
166
|
+
* public key
|
|
167
|
+
*/
|
|
168
|
+
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array): boolean | Promise<boolean>
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Returns this key as a multihash with base58btc encoding
|
|
172
|
+
*/
|
|
173
|
+
toString(): string
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export type PublicKey = RSAPublicKey | Ed25519PublicKey | Secp256k1PublicKey | ECDSAPublicKey
|
|
135
177
|
|
|
136
178
|
/**
|
|
137
179
|
* Returns true if the passed argument has type overlap with the `PublicKey`
|
|
@@ -142,7 +184,7 @@ export function isPublicKey (key?: any): key is PublicKey {
|
|
|
142
184
|
return false
|
|
143
185
|
}
|
|
144
186
|
|
|
145
|
-
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1') &&
|
|
187
|
+
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1' || key.type === 'ECDSA') &&
|
|
146
188
|
key.raw instanceof Uint8Array &&
|
|
147
189
|
typeof key.equals === 'function' &&
|
|
148
190
|
typeof key.toMultihash === 'function' &&
|
|
@@ -237,7 +279,35 @@ export interface Secp256k1PrivateKey {
|
|
|
237
279
|
sign(data: Uint8Array | Uint8ArrayList): Uint8Array | Promise<Uint8Array>
|
|
238
280
|
}
|
|
239
281
|
|
|
240
|
-
export
|
|
282
|
+
export interface ECDSAPrivateKey {
|
|
283
|
+
/**
|
|
284
|
+
* The type of this key
|
|
285
|
+
*/
|
|
286
|
+
readonly type: 'ECDSA'
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* The public key that corresponds to this private key
|
|
290
|
+
*/
|
|
291
|
+
readonly publicKey: ECDSAPublicKey
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* The raw private key bytes
|
|
295
|
+
*/
|
|
296
|
+
readonly raw: Uint8Array
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Returns `true` if the passed object matches this key
|
|
300
|
+
*/
|
|
301
|
+
equals(key?: any): boolean
|
|
302
|
+
|
|
303
|
+
/**
|
|
304
|
+
* Sign the passed data with this private key and return the signature for
|
|
305
|
+
* later verification
|
|
306
|
+
*/
|
|
307
|
+
sign(data: Uint8Array | Uint8ArrayList): Uint8Array | Promise<Uint8Array>
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export type PrivateKey = RSAPrivateKey | Ed25519PrivateKey | Secp256k1PrivateKey | ECDSAPrivateKey
|
|
241
311
|
|
|
242
312
|
/**
|
|
243
313
|
* Returns true if the passed argument has type overlap with the `PrivateKey`
|
|
@@ -248,7 +318,7 @@ export function isPrivateKey (key?: any): key is PrivateKey {
|
|
|
248
318
|
return false
|
|
249
319
|
}
|
|
250
320
|
|
|
251
|
-
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1') &&
|
|
321
|
+
return (key.type === 'RSA' || key.type === 'Ed25519' || key.type === 'secp256k1' || key.type === 'ECDSA') &&
|
|
252
322
|
isPublicKey(key.publicKey) &&
|
|
253
323
|
key.raw instanceof Uint8Array &&
|
|
254
324
|
typeof key.equals === 'function' &&
|