code: func (*NymSignatureScheme) Verify(ipk handlers.IssuerPublicKey, Nym handlers.Ecp, signature, digest []byte) (err error) {
  	defer func() {
  		if r := recover(); r != nil {
  			err = errors.Errorf("failure [%s]", r)
  		}
  	}()
  
  	iipk, ok := ipk.(*IssuerPublicKey)
  	if !ok {
  		return errors.Errorf("invalid issuer public key, expected *IssuerPublicKey, got [%T]", ipk)
  	}
  	inym, ok := Nym.(*Ecp)
  	if !ok {
  		return errors.Errorf("invalid nym public key, expected *Ecp, got [%T]", Nym)
  	}
  
  	sig := &cryptolib.NymSignature{}
  	err = proto.Unmarshal(signature, sig)
  	if err != nil {
  		return errors.Wrap(err, "error unmarshalling signature")
  	}
  
  	return sig.Ver(inym.E, iipk.PK, digest)
  }
docs: // Verify checks that the passed signatures is valid with the respect to the passed digest, issuer public key,
  // and pseudonym public key.