@@ -68,15 +68,23 @@ func TestClient_DeactivateDID(t *testing.T) {
68
68
t .Run ("test error from get endpoints" , func (t * testing.T ) {
69
69
v := sidetree .New ()
70
70
71
- _ , privKey , err := ed25519 .GenerateKey (rand .Reader )
71
+ pubKey , privKey , err := ed25519 .GenerateKey (rand .Reader )
72
72
require .NoError (t , err )
73
73
74
- err = v .DeactivateDID ("did:ex:123" , deactivate .WithSigner (newSignerMock (t , privKey )),
75
- deactivate .WithOperationCommitment ("value" ))
74
+ signingPubKeyJWK , err := pubkey .GetPublicKeyJWK (pubKey )
75
+ require .NoError (t , err )
76
+
77
+ rv , err := commitment .GetRevealValue (signingPubKeyJWK , 18 )
78
+ require .NoError (t , err )
79
+
80
+ err = v .DeactivateDID ("did:ex:123" ,
81
+ deactivate .WithSigner (newSignerMock (t , privKey )),
82
+ deactivate .WithOperationCommitment (rv ))
76
83
require .Error (t , err )
77
84
require .Contains (t , err .Error (), "sidetree get endpoints func is required" )
78
85
79
- err = v .DeactivateDID ("did:ex:123" , deactivate .WithOperationCommitment ("value" ),
86
+ err = v .DeactivateDID ("did:ex:123" ,
87
+ deactivate .WithOperationCommitment (rv ),
80
88
deactivate .WithSigner (newSignerMock (t , privKey )),
81
89
deactivate .WithSidetreeEndpoint (func () ([]string , error ) {
82
90
return nil , fmt .Errorf ("failed to get endpoint" )
@@ -213,20 +221,41 @@ func TestClient_RecoverDID(t *testing.T) {
213
221
t .Run ("test error from get endpoints" , func (t * testing.T ) {
214
222
v := sidetree .New ()
215
223
216
- pubKey , privKey , err := ed25519 .GenerateKey (rand .Reader )
224
+ pubKey , _ , err := ed25519 .GenerateKey (rand .Reader )
217
225
require .NoError (t , err )
218
226
219
- err = v .RecoverDID ("did:ex:123" , recovery .WithOperationCommitment ("value" ),
220
- recovery .WithNextUpdatePublicKey (pubKey ), recovery .WithNextRecoveryPublicKey (pubKey ),
221
- recovery .WithSigner (newSignerMock (t , privKey )))
227
+ signingKey , err := ecdsa .GenerateKey (elliptic .P256 (), rand .Reader )
228
+ require .NoError (t , err )
229
+
230
+ signingPubKeyJWK , err := pubkey .GetPublicKeyJWK (& signingKey .PublicKey )
231
+ require .NoError (t , err )
232
+
233
+ rv , err := commitment .GetRevealValue (signingPubKeyJWK , 18 )
234
+ require .NoError (t , err )
235
+
236
+ err = v .RecoverDID ("did:ex:123" ,
237
+ recovery .WithSigner (newSignerMock (t , signingKey )), recovery .WithOperationCommitment (rv ),
238
+ recovery .WithNextRecoveryPublicKey (pubKey ),
239
+ recovery .WithNextUpdatePublicKey (pubKey ), recovery .WithPublicKey (& doc.PublicKey {
240
+ ID : "key3" ,
241
+ Type : doc .Ed25519VerificationKey2018 ,
242
+ JWK : jwk.JWK {JSONWebKey : gojose.JSONWebKey {Key : pubKey }},
243
+ }))
222
244
require .Error (t , err )
223
245
require .Contains (t , err .Error (), "sidetree get endpoints func is required" )
224
246
225
- err = v .RecoverDID ("did:ex:123" , recovery .WithOperationCommitment ("value" ),
226
- recovery .WithNextUpdatePublicKey (pubKey ), recovery .WithNextRecoveryPublicKey (pubKey ),
227
- recovery .WithSigner (newSignerMock (t , privKey )), recovery .WithSidetreeEndpoint (func () ([]string , error ) {
247
+ err = v .RecoverDID ("did:ex:123" ,
248
+ recovery .WithSigner (newSignerMock (t , signingKey )), recovery .WithOperationCommitment (rv ),
249
+ recovery .WithNextRecoveryPublicKey (pubKey ),
250
+ recovery .WithNextUpdatePublicKey (pubKey ), recovery .WithPublicKey (& doc.PublicKey {
251
+ ID : "key3" ,
252
+ Type : doc .Ed25519VerificationKey2018 ,
253
+ JWK : jwk.JWK {JSONWebKey : gojose.JSONWebKey {Key : pubKey }},
254
+ }),
255
+ recovery .WithSidetreeEndpoint (func () ([]string , error ) {
228
256
return nil , fmt .Errorf ("failed to get endpoint" )
229
257
}))
258
+
230
259
require .Error (t , err )
231
260
require .Contains (t , err .Error (), "failed to get endpoint" )
232
261
})
@@ -438,18 +467,34 @@ func TestClient_UpdateDID(t *testing.T) {
438
467
t .Run ("test error from get endpoints" , func (t * testing.T ) {
439
468
v := sidetree .New ()
440
469
441
- pubKey , privKey , err := ed25519 .GenerateKey (rand .Reader )
470
+ pubKey , _ , err := ed25519 .GenerateKey (rand .Reader )
471
+ require .NoError (t , err )
472
+
473
+ signingKey , err := ecdsa .GenerateKey (elliptic .P256 (), rand .Reader )
442
474
require .NoError (t , err )
443
475
444
- err = v .UpdateDID ("did:ex:123" , update .WithOperationCommitment ("value" ), update .WithNextUpdatePublicKey (pubKey ),
445
- update .WithSigner (newSignerMock (t , privKey )))
476
+ signingPubKeyJWK , err := pubkey .GetPublicKeyJWK (& signingKey .PublicKey )
477
+ require .NoError (t , err )
478
+
479
+ rv , err := commitment .GetRevealValue (signingPubKeyJWK , 18 )
480
+ require .NoError (t , err )
481
+
482
+ err = v .UpdateDID ("did:ex:123" ,
483
+ update .WithSigner (newSignerMock (t , signingKey )),
484
+ update .WithOperationCommitment (rv ),
485
+ update .WithNextUpdatePublicKey (pubKey ),
486
+ update .WithRemoveService ("svc1" ))
446
487
require .Error (t , err )
447
488
require .Contains (t , err .Error (), "sidetree get endpoints func is required" )
448
489
449
- err = v .UpdateDID ("did:ex:123" , update .WithOperationCommitment ("value" ), update .WithNextUpdatePublicKey (pubKey ),
450
- update .WithSigner (newSignerMock (t , privKey )), update .WithSidetreeEndpoint (func () ([]string , error ) {
490
+ err = v .UpdateDID ("did:ex:123" ,
491
+ update .WithSigner (newSignerMock (t , signingKey )),
492
+ update .WithOperationCommitment (rv ),
493
+ update .WithNextUpdatePublicKey (pubKey ),
494
+ update .WithSidetreeEndpoint (func () ([]string , error ) {
451
495
return nil , fmt .Errorf ("failed to get endpoints" )
452
- }))
496
+ }),
497
+ update .WithRemoveService ("svc1" ))
453
498
require .Error (t , err )
454
499
require .Contains (t , err .Error (), "failed to get endpoints" )
455
500
})
@@ -613,18 +658,36 @@ func TestClient_CreateDID(t *testing.T) {
613
658
t .Run ("test error from get endpoints" , func (t * testing.T ) {
614
659
v := sidetree .New ()
615
660
616
- pubKey , _ , err := ed25519 .GenerateKey (rand .Reader )
661
+ ed25519RecoveryPubKey , _ , err := ed25519 .GenerateKey (rand .Reader )
617
662
require .NoError (t , err )
618
663
619
- didResol , err := v .CreateDID (create .WithUpdatePublicKey (pubKey ), create .WithRecoveryPublicKey (pubKey ))
620
- require .Error (t , err )
664
+ ecUpdatePrivKey , err := ecdsa .GenerateKey (elliptic .P256 (), rand .Reader )
665
+ require .NoError (t , err )
666
+
667
+ didResol , err := v .CreateDID (create .WithRecoveryPublicKey (ed25519RecoveryPubKey ),
668
+ create .WithUpdatePublicKey (ecUpdatePrivKey .Public ()),
669
+ create .WithPublicKey (& doc.PublicKey {
670
+ ID : "key1" ,
671
+ Type : doc .JWSVerificationKey2020 ,
672
+ JWK : jwk.JWK {JSONWebKey : gojose.JSONWebKey {Key : ed25519RecoveryPubKey }},
673
+ Purposes : []string {doc .KeyPurposeAuthentication },
674
+ }))
675
+
621
676
require .Contains (t , err .Error (), "sidetree get endpoints func is required" )
622
677
require .Nil (t , didResol )
623
678
624
- didResol , err = v .CreateDID (create .WithUpdatePublicKey (pubKey ), create .WithRecoveryPublicKey (pubKey ),
679
+ didResol , err = v .CreateDID (create .WithRecoveryPublicKey (ed25519RecoveryPubKey ),
680
+ create .WithUpdatePublicKey (ecUpdatePrivKey .Public ()),
681
+ create .WithPublicKey (& doc.PublicKey {
682
+ ID : "key1" ,
683
+ Type : doc .JWSVerificationKey2020 ,
684
+ JWK : jwk.JWK {JSONWebKey : gojose.JSONWebKey {Key : ed25519RecoveryPubKey }},
685
+ Purposes : []string {doc .KeyPurposeAuthentication },
686
+ }),
625
687
create .WithSidetreeEndpoint (func () ([]string , error ) {
626
688
return nil , fmt .Errorf ("failed to get endpoints" )
627
689
}))
690
+
628
691
require .Error (t , err )
629
692
require .Contains (t , err .Error (), "failed to get endpoints" )
630
693
require .Nil (t , didResol )
@@ -679,6 +742,26 @@ func TestClient_CreateDID(t *testing.T) {
679
742
require .Nil (t , didResol )
680
743
})
681
744
745
+ t .Run ("test error from sidetree operation request function" , func (t * testing.T ) {
746
+ v := sidetree .New (sidetree .WithSidetreeOperationRequestFnc (func (req []byte , getEndpoints func () ([]string , error )) ([]byte , error ) {
747
+ return nil , fmt .Errorf ("send operation request error" )
748
+ }))
749
+
750
+ ed25519RecoveryPubKey , _ , err := ed25519 .GenerateKey (rand .Reader )
751
+ require .NoError (t , err )
752
+
753
+ ed25519UpdatePubKey , _ , err := ed25519 .GenerateKey (rand .Reader )
754
+ require .NoError (t , err )
755
+
756
+ didResol , err := v .CreateDID (create .WithRecoveryPublicKey (ed25519RecoveryPubKey ),
757
+ create .WithUpdatePublicKey (ed25519UpdatePubKey ), create .WithSidetreeEndpoint (func () ([]string , error ) {
758
+ return []string {"https://www.domain.com" }, nil
759
+ }))
760
+ require .Error (t , err )
761
+ require .Contains (t , err .Error (), "failed to send create sidetree request: send operation request error" )
762
+ require .Nil (t , didResol )
763
+ })
764
+
682
765
t .Run ("test success" , func (t * testing.T ) {
683
766
serv := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
684
767
bytes , err := (& did.Doc {ID : "did1" , Context : []string {did .ContextV1 }}).JSONBytes ()
0 commit comments