Exemplo n.º 1
0
        public void ExportTest()
        {
            IOpenPgpKeyManagement keys = new OpenPgpKeyManagement();
            var passPhrase             = "pass phrase 1234";
            var key = keys.GenerateKeyPair("*****@*****.**", passPhrase);

            // Public key
            var originalFingerPrint = key.PublicKey.GetFingerprint();

            var exportedPublicKey = keys.Export(key.PublicKey);

            var reimportedKey         = keys.LoadPublicKey(exportedPublicKey);
            var reimportedFingerprint = reimportedKey.GetFingerprint();

            Assert.Equal(originalFingerPrint.Length, reimportedFingerprint.Length);
            for (int i = 0; i < originalFingerPrint.Length; i++)
            {
                Assert.Equal(originalFingerPrint[i], reimportedFingerprint[i]);
            }


            // Private key
            var exportedSecretKey   = keys.Export(key);
            var reimportedSecretKey = keys.LoadSecretKey(exportedSecretKey);

            // Imported key should allow to decrypt message
            IOpenPgpEncryption pgp = new OpenPgpEncryption();

            var encrypted = pgp.Encrypt("Hello", key.PublicKey);
            var decrypted = pgp.Decrypt(encrypted, reimportedSecretKey, passPhrase);

            Assert.Equal("Hello", decrypted);
        }