@@ -149,6 +149,70 @@ describe('keychain', () => {
149
149
} )
150
150
} )
151
151
152
+ describe ( 'ed25519 keys' , ( ) => {
153
+ const keyName = 'my custom key'
154
+ it ( 'can be an ed25519 key' , async ( ) => {
155
+ const keyInfo = await ks . createKey ( keyName , 'ed25519' )
156
+ expect ( keyInfo ) . to . exist ( )
157
+ expect ( keyInfo ) . to . have . property ( 'name' , keyName )
158
+ expect ( keyInfo ) . to . have . property ( 'id' )
159
+ } )
160
+
161
+ it ( 'does not overwrite existing key' , async ( ) => {
162
+ const err = await ks . createKey ( keyName , 'ed25519' ) . then ( fail , err => err )
163
+ expect ( err ) . to . have . property ( 'code' , 'ERR_KEY_ALREADY_EXISTS' )
164
+ } )
165
+
166
+ it ( 'can export/import a key' , async ( ) => {
167
+ const keyName = 'a new key'
168
+ const password = 'my sneaky password'
169
+ const keyInfo = await ks . createKey ( keyName , 'ed25519' )
170
+ const exportedKey = await ks . exportKey ( keyName , password )
171
+ // remove it so we can import it
172
+ await ks . removeKey ( keyName )
173
+ const importedKey = await ks . importKey ( keyName , exportedKey , password )
174
+ expect ( importedKey . id ) . to . eql ( keyInfo . id )
175
+ } )
176
+
177
+ it ( 'cannot create the "self" key' , async ( ) => {
178
+ const err = await ks . createKey ( 'self' , 'ed25519' ) . then ( fail , err => err )
179
+ expect ( err ) . to . exist ( )
180
+ expect ( err ) . to . have . property ( 'code' , 'ERR_INVALID_KEY_NAME' )
181
+ } )
182
+ } )
183
+
184
+ describe ( 'secp256k1 keys' , ( ) => {
185
+ const keyName = 'my secp256k1 key'
186
+ it ( 'can be an secp256k1 key' , async ( ) => {
187
+ const keyInfo = await ks . createKey ( keyName , 'secp256k1' )
188
+ expect ( keyInfo ) . to . exist ( )
189
+ expect ( keyInfo ) . to . have . property ( 'name' , keyName )
190
+ expect ( keyInfo ) . to . have . property ( 'id' )
191
+ } )
192
+
193
+ it ( 'does not overwrite existing key' , async ( ) => {
194
+ const err = await ks . createKey ( keyName , 'secp256k1' ) . then ( fail , err => err )
195
+ expect ( err ) . to . have . property ( 'code' , 'ERR_KEY_ALREADY_EXISTS' )
196
+ } )
197
+
198
+ it ( 'can export/import a key' , async ( ) => {
199
+ const keyName = 'a new secp256k1 key'
200
+ const password = 'my sneaky password'
201
+ const keyInfo = await ks . createKey ( keyName , 'secp256k1' )
202
+ const exportedKey = await ks . exportKey ( keyName , password )
203
+ // remove it so we can import it
204
+ await ks . removeKey ( keyName )
205
+ const importedKey = await ks . importKey ( keyName , exportedKey , password )
206
+ expect ( importedKey . id ) . to . eql ( keyInfo . id )
207
+ } )
208
+
209
+ it ( 'cannot create the "self" key' , async ( ) => {
210
+ const err = await ks . createKey ( 'self' , 'secp256k1' ) . then ( fail , err => err )
211
+ expect ( err ) . to . exist ( )
212
+ expect ( err ) . to . have . property ( 'code' , 'ERR_INVALID_KEY_NAME' )
213
+ } )
214
+ } )
215
+
152
216
describe ( 'query' , ( ) => {
153
217
it ( 'finds all existing keys' , async ( ) => {
154
218
const keys = await ks . listKeys ( )
0 commit comments