Skip to content
This repository was archived by the owner on Jun 26, 2023. It is now read-only.

Commit a970939

Browse files
authored
fix: add exportPeer method to keychain interface (#337)
This is available in libp2p but not the interface
1 parent 0080400 commit a970939

File tree

1 file changed

+49
-8
lines changed

1 file changed

+49
-8
lines changed

packages/interface-keychain/src/index.ts

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
1+
/**
2+
* @packageDocumentation
3+
*
4+
* The libp2p keychain provides an API to store keys in a datastore in
5+
* an encrypted format.
6+
*
7+
* @example
8+
*
9+
* ```typescript
10+
* import { createLibp2p } from 'libp2p'
11+
* import { FsDatastore } from 'datastore-fs'
12+
*
13+
* const node = await createLibp2p({
14+
* datastore: new FsDatastore('/path/to/dir')
15+
* })
16+
*
17+
* const info = await node.keychain.createKey('my-new-key', 'Ed25519')
18+
*
19+
* console.info(info) // { id: '...', name: 'my-new-key' }
20+
* ```
21+
*/
22+
123
import type { Multibase } from 'multiformats/bases/interface'
224
import type { PeerId } from '@libp2p/interface-peer-id'
325

@@ -13,14 +35,16 @@ export interface KeyInfo {
1335
name: string
1436
}
1537

16-
export type KeyType = 'Ed25519' | 'RSA'
38+
export type KeyType = 'RSA' | 'Ed25519' | 'secp256k1'
1739

1840
export interface KeyChain {
1941
/**
2042
* Export an existing key as a PEM encrypted PKCS #8 string.
2143
*
44+
* @example
45+
*
2246
* ```js
23-
* await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
47+
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
2448
* const pemKey = await libp2p.keychain.exportKey('keyTest', 'password123')
2549
* ```
2650
*/
@@ -29,8 +53,10 @@ export interface KeyChain {
2953
/**
3054
* Import a new key from a PEM encoded PKCS #8 string.
3155
*
56+
* @example
57+
*
3258
* ```js
33-
* await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
59+
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
3460
* const pemKey = await libp2p.keychain.exportKey('keyTest', 'password123')
3561
* const keyInfo = await libp2p.keychain.importKey('keyTestImport', pemKey, 'password123')
3662
* ```
@@ -40,19 +66,32 @@ export interface KeyChain {
4066
/**
4167
* Import a new key from a PeerId with a private key component
4268
*
69+
* @example
70+
*
4371
* ```js
4472
* const keyInfo = await libp2p.keychain.importPeer('keyTestImport', peerIdFromString('12D3Foo...'))
4573
* ```
4674
*/
4775
importPeer: (name: string, peerId: PeerId) => Promise<KeyInfo>
4876

77+
/**
78+
* Export an existing key as a PeerId
79+
*
80+
* @example
81+
*
82+
* ```js
83+
* const peerId = await libp2p.keychain.exportPeerId('key-name')
84+
* ```
85+
*/
86+
exportPeerId: (name: string) => Promise<PeerId>
87+
4988
/**
5089
* Create a key in the keychain.
5190
*
5291
* @example
5392
*
5493
* ```js
55-
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
94+
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
5695
* ```
5796
*/
5897
createKey: (name: string, type: KeyType, size?: number) => Promise<KeyInfo>
@@ -74,7 +113,7 @@ export interface KeyChain {
74113
* @example
75114
*
76115
* ```js
77-
* await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
116+
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
78117
* const keyInfo = await libp2p.keychain.removeKey('keyTest')
79118
* ```
80119
*/
@@ -86,7 +125,7 @@ export interface KeyChain {
86125
* @example
87126
*
88127
* ```js
89-
* await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
128+
* await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
90129
* const keyInfo = await libp2p.keychain.renameKey('keyTest', 'keyNewNtest')
91130
* ```
92131
*/
@@ -95,8 +134,10 @@ export interface KeyChain {
95134
/**
96135
* Find a key by it's id.
97136
*
137+
* @example
138+
*
98139
* ```js
99-
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
140+
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
100141
* const keyInfo2 = await libp2p.keychain.findKeyById(keyInfo.id)
101142
* ```
102143
*/
@@ -108,7 +149,7 @@ export interface KeyChain {
108149
* @example
109150
*
110151
* ```js
111-
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'rsa', 4096)
152+
* const keyInfo = await libp2p.keychain.createKey('keyTest', 'RSA', 4096)
112153
* const keyInfo2 = await libp2p.keychain.findKeyByName('keyTest')
113154
* ```
114155
*/

0 commit comments

Comments
 (0)