Example #1
0
        public void Sign_ReturnsExpectedSignature(string text, string expectedSignature, string privateKey)
        {
            var key       = SodiumSecurityKey.FromPrivateKey(Convert.FromBase64String(privateKey));
            var provider  = new SodiumSignatureProvider(key, SodiumAlgorithms.EdDsa);
            var signature = provider.Sign(Encoding.UTF8.GetBytes(text));

            Assert.AreEqual(expectedSignature, Convert.ToBase64String(signature));
        }
        public void Dispose_ClearsPrivateKey()
        {
            var key        = SodiumSecurityKey.FromPrivateKey(PrivateKey);
            var privateKey = key.PrivateKey;

            key.Dispose();
            CollectionAssert.AreEqual(new byte[64], privateKey);
        }
Example #3
0
        public void Verify_ReturnsTrue_ForValidSignatures(string text, string signature, string publicKey)
        {
            var key      = SodiumSecurityKey.FromPublicKey(Convert.FromBase64String(publicKey));
            var provider = new SodiumSignatureProvider(key, SodiumAlgorithms.EdDsa);
            var verified = provider.Verify(Encoding.UTF8.GetBytes(text), Convert.FromBase64String(signature));

            Assert.IsTrue(verified);
        }
        public void FromPrivateKey_Sets_PrivateKeyToInput()
        {
            var key = SodiumSecurityKey.FromPrivateKey(PrivateKey);

            CollectionAssert.AreEqual(PrivateKey, key.PrivateKey);
        }
        public void FromPrivateKey_HasPrivateKey()
        {
            var key = SodiumSecurityKey.FromPrivateKey(PrivateKey);

            Assert.AreEqual(PrivateKeyStatus.Exists, key.PrivateKeyStatus);
        }
        public void FromPublicKey_HasNoPrivateKey()
        {
            var key = SodiumSecurityKey.FromPublicKey(PublicKey);

            Assert.AreEqual(PrivateKeyStatus.DoesNotExist, key.PrivateKeyStatus);
        }
        public void FromPublicKey_Sets_PrivateKeyToNull()
        {
            var key = SodiumSecurityKey.FromPublicKey(PublicKey);

            Assert.Null(key.PrivateKey);
        }
 public void FromPrivateKey_ThrowsArgumentException_WhenPrivateKeyIsNull()
 => Assert.Throws <ArgumentException>(() => SodiumSecurityKey.FromPrivateKey(Array.Empty <byte>()));
 public void FromPublicKey_ThrowsArgumentException_WhenPublicKeyTooShort()
 => Assert.Throws <ArgumentException>(() => SodiumSecurityKey.FromPublicKey(Array.Empty <byte>()));
 public void Initialize()
 {
     _provider = new SodiumCryptoProvider();
     _key      = SodiumSecurityKey.FromPublicKey(Convert.FromBase64String("T/2hPBHWHSuVaOVL7AbqWTaOhIdIgwh2ReZOXpZTQi4="));
 }