public static bool RSA_VerifyData(byte[] data, byte[] signature, RSA rsa, Enums.SignatureAlgorithm algorithm) { if (algorithm == Enums.SignatureAlgorithm.rsa_pkcs1_sha512) { return(rsa.VerifyData(data, signature, HashAlgorithmName.SHA512, RSASignaturePadding.Pkcs1)); } else if (algorithm == Enums.SignatureAlgorithm.rsa_pkcs1_sha384) { return(rsa.VerifyData(data, signature, HashAlgorithmName.SHA384, RSASignaturePadding.Pkcs1)); } else if (algorithm == Enums.SignatureAlgorithm.rsa_pkcs1_sha256) { return(rsa.VerifyData(data, signature, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1)); } else if (algorithm == Enums.SignatureAlgorithm.rsa_pss_rsae_sha512) { return(rsa.VerifyData(data, signature, HashAlgorithmName.SHA512, RSASignaturePadding.Pss)); } else if (algorithm == Enums.SignatureAlgorithm.rsa_pss_rsae_sha384) { return(rsa.VerifyData(data, signature, HashAlgorithmName.SHA384, RSASignaturePadding.Pss)); } else if (algorithm == Enums.SignatureAlgorithm.rsa_pss_rsae_sha256) { return(rsa.VerifyData(data, signature, HashAlgorithmName.SHA256, RSASignaturePadding.Pss)); } else { throw new NotImplementedException($"SignatureAlgorithm {algorithm} NotImplemented"); } }
public virtual bool SignatureVerify(byte[] data, byte[] signature, Enums.SignatureAlgorithm algorithm, AsymmetricAlgorithm asymmetric) { if (asymmetric is RSA rsa) { return(Utils.RSA_VerifyData(data, signature, rsa, algorithm)); } else if (asymmetric is ECDsa ecc) { return(Utils.ECC_VerifyData(data, signature, ecc, algorithm)); } return(false); }
public virtual byte[] Signature(byte[] data, Enums.SignatureAlgorithm algorithm, AsymmetricAlgorithm asymmetric) { if (asymmetric is RSA rsa) { return(Utils.RSA_SignData(data, rsa, algorithm)); } else if (asymmetric is ECDsa ecc) { return(Utils.ECC_SignData(data, ecc, algorithm)); } return(null); }
public static byte[] ECC_SignData(byte[] data, ECDsa ecdsa, Enums.SignatureAlgorithm algorithm) { if (algorithm == Enums.SignatureAlgorithm.ecdsa_secp256r1_sha256) { return(ecdsa.SignData(data, HashAlgorithmName.SHA256)); } else if (algorithm == Enums.SignatureAlgorithm.ecdsa_secp384r1_sha384) { return(ecdsa.SignData(data, HashAlgorithmName.SHA384)); } else if (algorithm == Enums.SignatureAlgorithm.ecdsa_secp521r1_sha512) { return(ecdsa.SignData(data, HashAlgorithmName.SHA512)); } else { throw new NotImplementedException($"SignatureAlgorithm {algorithm} NotImplemented"); } }