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  }