Add integration tests for additional key types.

Closes gh-543.
This commit is contained in:
Mark Paluch
2020-08-31 14:05:12 +02:00
parent 0ef42a1497
commit 0fb3f9d9a0

View File

@@ -28,30 +28,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.vault.VaultException;
import org.springframework.vault.support.Ciphertext;
import org.springframework.vault.support.Hmac;
import org.springframework.vault.support.Plaintext;
import org.springframework.vault.support.RawTransitKey;
import org.springframework.vault.support.Signature;
import org.springframework.vault.support.SignatureValidation;
import org.springframework.vault.support.TransitKeyType;
import org.springframework.vault.support.VaultDecryptionResult;
import org.springframework.vault.support.VaultEncryptionResult;
import org.springframework.vault.support.VaultHmacRequest;
import org.springframework.vault.support.VaultMount;
import org.springframework.vault.support.VaultSignRequest;
import org.springframework.vault.support.VaultSignatureVerificationRequest;
import org.springframework.vault.support.VaultTransitContext;
import org.springframework.vault.support.VaultTransitKey;
import org.springframework.vault.support.VaultTransitKeyConfiguration;
import org.springframework.vault.support.VaultTransitKeyCreationRequest;
import org.springframework.vault.support.*;
import org.springframework.vault.util.IntegrationTestSupport;
import org.springframework.vault.util.RequiresVaultVersion;
import org.springframework.vault.util.Version;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.assertj.core.api.Assertions.fail;
import static org.assertj.core.api.Assertions.*;
/**
* Integration tests for {@link VaultTransitTemplate} through
@@ -74,6 +56,12 @@ class VaultTransitTemplateIntegrationTests extends IntegrationTestSupport {
static final String ED25519_INTRODUCED_IN_VERSION = "0.7.3";
static final String RSA3072_INTRODUCED_IN_VERSION = "1.4.0";
static final String ECDSA521_INTRODUCED_IN_VERSION = "1.4.0";
static final String AES256_GCM96_INTRODUCED_IN_VERSION = "1.4.0";
@Autowired
VaultOperations vaultOperations;
@@ -129,6 +117,9 @@ class VaultTransitTemplateIntegrationTests extends IntegrationTestSupport {
deleteKey("export");
deleteKey("ecdsa-key");
deleteKey("ed-key");
deleteKey("rsa-3072-key");
deleteKey("ecdsa-p521-key");
deleteKey("aes256-gcm96-key");
}
}
@@ -182,6 +173,48 @@ class VaultTransitTemplateIntegrationTests extends IntegrationTestSupport {
assertThat(mykey.getKeys()).isNotEmpty();
}
@Test
@RequiresVaultVersion(ECDSA521_INTRODUCED_IN_VERSION)
void createKeyShouldCreateEcdsaKey() {
VaultTransitKeyCreationRequest request = VaultTransitKeyCreationRequest.ofKeyType("ecdsa-p521");
this.transitOperations.createKey("ecdsa-p521-key", request);
VaultTransitKey mykey = this.transitOperations.getKey("ecdsa-p521-key");
assertThat(mykey.getType()).isEqualTo("ecdsa-p521");
assertThat(mykey.getKeys()).isNotEmpty();
}
@Test
@RequiresVaultVersion(RSA3072_INTRODUCED_IN_VERSION)
void createKeyShouldCreateRsa3072Key() {
VaultTransitKeyCreationRequest request = VaultTransitKeyCreationRequest.ofKeyType("rsa-3072");
this.transitOperations.createKey("rsa-3072-key", request);
VaultTransitKey mykey = this.transitOperations.getKey("rsa-3072-key");
assertThat(mykey.getType()).isEqualTo("rsa-3072");
assertThat(mykey.getKeys()).isNotEmpty();
}
@Test
@RequiresVaultVersion(AES256_GCM96_INTRODUCED_IN_VERSION)
void createKeyShouldCreateAes256Gcm96Key() {
VaultTransitKeyCreationRequest request = VaultTransitKeyCreationRequest.ofKeyType("aes256-gcm96");
this.transitOperations.createKey("aes256-gcm96-key", request);
VaultTransitKey mykey = this.transitOperations.getKey("aes256-gcm96-key");
assertThat(mykey.getType()).isEqualTo("aes256-gcm96");
assertThat(mykey.getKeys()).isNotEmpty();
}
@Test
void createKeyShouldCreateKeyWithOptions() {