public void ExportPublicKey_Should_ReturnDerFormat() { var crypto = new VirgilCrypto(); var publicKey = crypto.ImportPublicKey( Convert.FromBase64String(AppSettings.PublicKeySTC32)); var exportedPublicKey1Bytes = crypto.ExportPublicKey(publicKey); var privateKeyToDer = VirgilKeyPair.PublicKeyToDER(((PublicKey)publicKey).RawKey); Assert.IsTrue(privateKeyToDer.SequenceEqual(exportedPublicKey1Bytes)); }
public void ImportExportedPublicKey_Should_ReturnEquivalentKey() { var crypto = new VirgilCrypto(); var keyPair = crypto.GenerateKeys(); var exportedKey = crypto.ExportPublicKey(keyPair.PublicKey); var importedKey = (PublicKey)crypto.ImportPublicKey(exportedKey); Assert.IsTrue(importedKey.Id.SequenceEqual(keyPair.PublicKey.Id)); Assert.IsTrue(importedKey.RawKey.SequenceEqual(keyPair.PublicKey.RawKey)); }
public void Verify_Should_VerifyTestCreatedInAnotherSDK() { var jwt = new Jwt(AppSettings.ImportedJwt); var signer = new VirgilAccessTokenSigner(); var crypto = new VirgilCrypto(); var jwtVerifier = new JwtVerifier( signer, crypto.ImportPublicKey( Bytes.FromString(AppSettings.ImportedAccessPublicKey, StringEncoding.BASE64)), AppSettings.ImportedAccessPublicKeyId); Assert.IsTrue(jwtVerifier.VerifyToken(jwt)); }
public void DecryptThenVerifytForMultipleSigners_Should_BeEqualToTestData() { var testData = compatibilityData["sign_then_encrypt_multiple_signers"]; var privateKey = cryptoSHA256.ImportPrivateKey( Bytes.FromString((string)testData["private_key"], StringEncoding.BASE64)); var publicKeysBase64 = testData["public_keys"].ToObject <string[]>(); var publicKeys = ((string[])publicKeysBase64).Select(x => cryptoSHA256.ImportPublicKey(Bytes.FromString(x, StringEncoding.BASE64))).ToArray(); var data = Bytes.FromString((string)testData["original_data"], StringEncoding.BASE64); var cipherData = Bytes.FromString((string)testData["cipher_data"], StringEncoding.BASE64); Assert.IsTrue(cryptoSHA256.DecryptThenVerify(cipherData, privateKey, publicKeys).SequenceEqual(data)); }
public void JwtVerifier_Should_VerifyImportedJwt() { //STC-22 var signer = new VirgilAccessTokenSigner(); string apiPublicKeyId; string apiPublicKeyBase64; var crypto = new VirgilCrypto(); var token = faker.PredefinedToken(signer, TimeSpan.FromMinutes(10), out apiPublicKeyId, out apiPublicKeyBase64).Item1; var jwtVerifier = new JwtVerifier( signer, crypto.ImportPublicKey(Bytes.FromString(apiPublicKeyBase64, StringEncoding.BASE64)), apiPublicKeyId); Assert.IsTrue(jwtVerifier.VerifyToken(token)); }