github.com/s7techlab/cckit@v0.10.5/identity/equal.go (about) 1 package identity 2 3 import ( 4 "errors" 5 ) 6 7 var ( 8 // ErrMSPIdentifierNotEqual occurs when msp id did not match 9 ErrMSPIdentifierNotEqual = errors.New(`msp identifier not equal`) 10 11 ErrSubjectNotEqual = errors.New(`certificate subject not equal`) 12 ErrIssuerNotEqual = errors.New(`certificate issuer not equal`) 13 ) 14 15 type ( 16 SubjectIssuer interface { 17 GetSubject() string 18 GetIssuer() string 19 } 20 21 IdentityAttrs interface { 22 SubjectIssuer 23 GetMSPIdentifier() string 24 } 25 ) 26 27 // Equal checks identity attributes (Msp id, cert subject and cert issuer) equality 28 func Equal(identity1, identity2 IdentityAttrs) error { 29 if identity1.GetMSPIdentifier() != identity2.GetMSPIdentifier() { 30 return ErrMSPIdentifierNotEqual 31 } 32 33 return CertEqual(identity1, identity2) 34 } 35 36 // CertEqual checks certificate equality 37 func CertEqual(cert1, cert2 SubjectIssuer) error { 38 39 if cert1 == nil || cert2 == nil { 40 return errors.New(`certificate empty`) 41 } 42 if cert1.GetSubject() != cert2.GetSubject() { 43 return ErrSubjectNotEqual 44 } 45 46 if cert1.GetIssuer() != cert2.GetIssuer() { 47 return ErrIssuerNotEqual 48 } 49 50 return nil 51 }