public void TestEcdsaSignAndVerify(ushort ecOpensslNid) { var digest = DoSha256Digest(Encoding.UTF8.GetBytes("PascalCoin")); var privateKey = GetNewPrivateKey(ecOpensslNid); var sig = DoEcdsaSign(privateKey, digest); Assert.IsTrue(ECCrypto.ECDSAVerify(privateKey.PublicKey, digest, sig)); }
public void TestEncodeAndDecodeSig(ushort ecOpensslNid) { var origSig = DoEcdsaSign(GetNewPrivateKey(ecOpensslNid), DoSha256Digest(Encoding.UTF8.GetBytes("PascalCoin"))); var encodeSig = ECCrypto.EncodeSignature(origSig); _ = ECCrypto.DecodeSignature(encodeSig, out var newSig); Assert.IsTrue(AreEcdsaSigEqual(origSig, newSig)); }
public void TestPascalCoinAesEncryptAndDecrypt(byte[] message, byte[] password) { var decryptedMessage = Array.Empty <byte>(); var isDecrypted = ECCrypto.DoPascalCoinAESDecrypt(ECCrypto.DoPascalCoinAESEncrypt(message, password), password, ref decryptedMessage); Assert.IsTrue(isDecrypted); Assert.IsTrue(message.SequenceEqual(decryptedMessage)); }
public void TestPascalCoinEciesEncryptAndDecrypt(ushort ecOpensslNid, byte[] message) { var encryptedMessage = Array.Empty <byte>(); var decryptedMessage = Array.Empty <byte>(); var privateKey = GetNewPrivateKey(ecOpensslNid); var publicKey = privateKey.PublicKey; var isEncrypted = ECCrypto.DoPascalCoinECIESEncrypt(publicKey, message, ref encryptedMessage); Assert.IsTrue(isEncrypted); var isDecrypted = ECCrypto.DoPascalCoinECIESDecrypt(privateKey.EC_OpenSSL_NID, privateKey.PrivateKey.RAW_PrivKey, encryptedMessage, ref decryptedMessage); Assert.IsTrue(isDecrypted); Assert.IsTrue(message.SequenceEqual(decryptedMessage)); }
public void TestIsHumanReadable(byte[] bytesToParse, bool pass) => Assert.AreEqual(ECCrypto.IsHumanReadable(bytesToParse), pass);
public void TestEncodeAndDecodeHexString(string stringToParse) => Assert.AreEqual(ECCrypto.RawToHex(ECCrypto.HexaToRaw(stringToParse)).ToUpperInvariant(), stringToParse.ToUpperInvariant());
public void TestHexString(string stringToParse, bool pass) => Assert.AreEqual(ECCrypto.IsHexString(stringToParse), pass);
protected override void InitActions() { IConnectionCrypto Crypto = new ECCrypto(true); Connection.InitializeCrypto(Crypto); }
private static byte[] DoSha256Digest(byte[] message) => ECCrypto.DoSha256(message);
private static ECDSA_SIG DoEcdsaSign(ECPrivateKey privateKey, byte[] digest) => ECCrypto.ECDSASign(privateKey.PrivateKey, digest);