public void TestInit()
        {
            var pak = new PassphraseEncryptedPacket(new byte[0], new byte[0], new byte[0]);

            Assert.IsEmpty(pak.CipherText);
            Assert.IsEmpty(pak.IV);
        }
        public void TestToBase64Conversion()
        {
            var buf       = new byte[] { 1, 2, 3 };
            var base64buf = Convert.ToBase64String(buf);
            var pak       = new PassphraseEncryptedPacket(new byte[0], buf, buf);

            Assert.AreEqual(pak.ToString(), $"{base64buf}.{base64buf}");
        }
        public void TestFromBase64Conversion()
        {
            var buf       = new byte[] { 1, 2, 3 };
            var base64buf = Convert.ToBase64String(buf);
            var pak       = PassphraseEncryptedPacket.FromString(new byte[0], $"{base64buf}.{base64buf}");

            Assert.AreEqual(pak.IV, buf);
            Assert.AreEqual(pak.CipherText, buf);
        }
Exemplo n.º 4
0
        public async Task <byte[]> GetRepositoryMasterKey(string repo, string passphrase)
        {
            var manifest = await GetRepositoryManifest(repo);

            var repositoryPassphrase = Encoding.UTF8.GetBytes(passphrase);
            var repositoryMasterKey  = PassphraseEncryptedPacket.FromString(repositoryPassphrase, manifest.MasterKey);

            return(crypto.PassphraseDecrypt(repositoryPassphrase, repositoryMasterKey));
        }
Exemplo n.º 5
0
        public async Task <StoredItemMetadata> GetItemMetadata(string repo, string passphrase, string itemId)
        {
            var encryptedMetadata = await driver.ReadMetadata(repo, itemId);

            var serializedPacket  = Encoding.ASCII.GetString(encryptedMetadata);
            var encodedPassphrase = Encoding.UTF8.GetBytes(passphrase);
            var packet            = PassphraseEncryptedPacket.FromString(encodedPassphrase, serializedPacket);

            var binaryMetadata = crypto.PassphraseDecrypt(encodedPassphrase, packet);
            var rawJson        = Encoding.UTF8.GetString(binaryMetadata);

            return(JsonSerializer.Deserialize <StoredItemMetadata>(rawJson));
        }
Exemplo n.º 6
0
        protected string GetPassphrase()
        {
            var encpps = User.Claims.SingleOrDefault(c => c.Type == Const.EncryptedPassphraseClaimType);

            if (encpps == null || encpps.Value == null)
            {
                throw new MemzException(MemzErrorCode.InvalidPassphrase, $"Identity does not contain valid {Const.EncryptedPassphraseClaimType} claim");
            }

            var raw        = encpps.Value;
            var serverKey  = Configuration.GetServerKey();
            var passphrase = CryptoService.PassphraseDecrypt(serverKey, PassphraseEncryptedPacket.FromString(serverKey, raw));

            return(Encoding.UTF8.GetString(passphrase));
        }
        public void TestToBase64ConversionEmpty()
        {
            var pak = new PassphraseEncryptedPacket(new byte[0], new byte[0], new byte[0]);

            Assert.AreEqual(pak.ToString(), ".");
        }