コード例 #1
0
    public void EncryptsData()
    {
        var message = "testing1234";

        // Run the sample code.
        var ciphertext = _sample.EncryptAsymmetric(
            projectId: _fixture.ProjectId, locationId: _fixture.LocationId, keyRingId: _fixture.KeyRingId, keyId: _fixture.AsymmetricDecryptKeyId, keyVersionId: "1",
            message: message);

        // Decrypt result.
        KeyManagementServiceClient client         = KeyManagementServiceClient.Create();
        CryptoKeyVersionName       keyVersionName = new CryptoKeyVersionName(_fixture.ProjectId, _fixture.LocationId, _fixture.KeyRingId, _fixture.AsymmetricDecryptKeyId, "1");
        var result = client.AsymmetricDecrypt(keyVersionName, ByteString.CopyFrom(ciphertext));

        Assert.Equal(message, result.Plaintext.ToStringUtf8());
    }
コード例 #2
0
    public string DecryptAsymmetric(
        string projectId  = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key", string keyVersionId = "123",
        byte[] ciphertext = null)
    {
        // Create the client.
        KeyManagementServiceClient client = KeyManagementServiceClient.Create();

        // Build the key version name.
        CryptoKeyVersionName keyVersionName = new CryptoKeyVersionName(projectId, locationId, keyRingId, keyId, keyVersionId);

        // Call the API.
        AsymmetricDecryptResponse result = client.AsymmetricDecrypt(keyVersionName, ByteString.CopyFrom(ciphertext));

        // Get the plaintext. Cryptographic plaintexts and ciphertexts are
        // always byte arrays.
        byte[] plaintext = result.Plaintext.ToByteArray();

        // Return the result.
        return(Encoding.UTF8.GetString(plaintext));
    }