package rsa import ( "crypto" "xdx.jelly/xgcl/rsa/internal" "xdx.jelly/xgcl/sm" ) var VerifyPKCS1v15 = internal.VerifyPKCS1v15 var SignPKCS1v15 = internal.SignPKCS1v15 // helper function for RSA_SM3 signature // SignPKCS1v15WithSm3 signature with SM3 func SignPKCS1v15WithSm3(priv *PrivateKey, hashed []byte) ([]byte, error) { return SignPKCS1v15(nil, priv, sm.SM3, hashed) } // SignPKCS1v15WithSm3 signature with SHA256 func SignPKCS1v15WithSha256(priv *PrivateKey, hashed []byte) ([]byte, error) { return SignPKCS1v15(nil, priv, sm.SHA256, hashed) } // VerifyPKCS1v15WithSm3 verify with SM3 func VerifyPKCS1v15WithSm3(pub *PublicKey, hashed []byte, sig []byte) error { return VerifyPKCS1v15(pub, sm.SM3, hashed, sig) } // VerifyPKCS1v15WithSha256 verify with SHA256 func VerifyPKCS1v15WithSha256(pub *PublicKey, hashed []byte, sig []byte) error { return VerifyPKCS1v15(pub, sm.SHA256, hashed, sig) } // PKCS1v15 implement the sdf.RSAAdapter interface type PKCS1v15 struct{} // 0018用的是PKCS1v1.5 还有其他暂不实现 func NewPKCS1v15() PKCS1v15 { return PKCS1v15{} } func (PKCS1v15) Sign(priv *PrivateKey, hash crypto.Hash, hashed []byte) ([]byte, error) { return internal.SignPKCS1v15(nil, priv, sm.Hash{Hash: hash}, hashed) } func (PKCS1v15) Verify(pub *PublicKey, hash crypto.Hash, hashed []byte, sig []byte) error { return internal.VerifyPKCS1v15(pub, sm.Hash{Hash: hash}, hashed, sig) }