use of com.google.crypto.tink.proto.EciesHkdfKemParams in project tink by google.
the class HybridKeyTemplatesTest method testCreateEciesAeadHkdfKeyTemplate.
@Test
public void testCreateEciesAeadHkdfKeyTemplate() throws Exception {
// Intentionally using "weird" or invalid values for parameters,
// to test that the function correctly puts them in the resulting template.
EllipticCurveType curveType = EllipticCurveType.NIST_P384;
HashType hashType = HashType.SHA512;
EcPointFormat ecPointFormat = EcPointFormat.COMPRESSED;
KeyTemplate demKeyTemplate = AeadKeyTemplates.AES256_EAX;
String salt = "some salt";
KeyTemplate template = HybridKeyTemplates.createEciesAeadHkdfKeyTemplate(curveType, hashType, ecPointFormat, demKeyTemplate, OutputPrefixType.TINK, salt.getBytes(UTF_8));
assertEquals(new EciesAeadHkdfPrivateKeyManager().getKeyType(), template.getTypeUrl());
assertEquals(OutputPrefixType.TINK, template.getOutputPrefixType());
EciesAeadHkdfKeyFormat format = EciesAeadHkdfKeyFormat.parseFrom(template.getValue(), ExtensionRegistryLite.getEmptyRegistry());
assertTrue(format.hasParams());
assertTrue(format.getParams().hasKemParams());
assertTrue(format.getParams().hasDemParams());
assertTrue(format.getParams().getDemParams().hasAeadDem());
assertEquals(ecPointFormat, format.getParams().getEcPointFormat());
EciesHkdfKemParams kemParams = format.getParams().getKemParams();
assertEquals(curveType, kemParams.getCurveType());
assertEquals(hashType, kemParams.getHkdfHashType());
assertEquals(salt, kemParams.getHkdfSalt().toStringUtf8());
assertEquals(AeadKeyTemplates.AES256_EAX.toString(), format.getParams().getDemParams().getAeadDem().toString());
}
use of com.google.crypto.tink.proto.EciesHkdfKemParams in project tink by google.
the class HybridKeyTemplatesTest method eciesP256HkdfHmacSha256Aes128CtrHmacSha256.
@Test
public void eciesP256HkdfHmacSha256Aes128CtrHmacSha256() throws Exception {
KeyTemplate template = HybridKeyTemplates.ECIES_P256_HKDF_HMAC_SHA256_AES128_CTR_HMAC_SHA256;
assertEquals(new EciesAeadHkdfPrivateKeyManager().getKeyType(), template.getTypeUrl());
assertEquals(OutputPrefixType.TINK, template.getOutputPrefixType());
EciesAeadHkdfKeyFormat format = EciesAeadHkdfKeyFormat.parseFrom(template.getValue(), ExtensionRegistryLite.getEmptyRegistry());
assertTrue(format.hasParams());
assertTrue(format.getParams().hasKemParams());
assertTrue(format.getParams().hasDemParams());
assertTrue(format.getParams().getDemParams().hasAeadDem());
assertEquals(EcPointFormat.UNCOMPRESSED, format.getParams().getEcPointFormat());
EciesHkdfKemParams kemParams = format.getParams().getKemParams();
assertEquals(EllipticCurveType.NIST_P256, kemParams.getCurveType());
assertEquals(HashType.SHA256, kemParams.getHkdfHashType());
assertTrue(kemParams.getHkdfSalt().isEmpty());
assertEquals(AeadKeyTemplates.AES128_CTR_HMAC_SHA256.toString(), format.getParams().getDemParams().getAeadDem().toString());
}
use of com.google.crypto.tink.proto.EciesHkdfKemParams in project tink by google.
the class HybridKeyTemplatesTest method eciesP256HkdfHmaSha256Aes128Gcm.
@Test
public void eciesP256HkdfHmaSha256Aes128Gcm() throws Exception {
KeyTemplate template = HybridKeyTemplates.ECIES_P256_HKDF_HMAC_SHA256_AES128_GCM;
assertEquals(new EciesAeadHkdfPrivateKeyManager().getKeyType(), template.getTypeUrl());
assertEquals(OutputPrefixType.TINK, template.getOutputPrefixType());
EciesAeadHkdfKeyFormat format = EciesAeadHkdfKeyFormat.parseFrom(template.getValue(), ExtensionRegistryLite.getEmptyRegistry());
assertTrue(format.hasParams());
assertTrue(format.getParams().hasKemParams());
assertTrue(format.getParams().hasDemParams());
assertTrue(format.getParams().getDemParams().hasAeadDem());
assertEquals(EcPointFormat.UNCOMPRESSED, format.getParams().getEcPointFormat());
EciesHkdfKemParams kemParams = format.getParams().getKemParams();
assertEquals(EllipticCurveType.NIST_P256, kemParams.getCurveType());
assertEquals(HashType.SHA256, kemParams.getHkdfHashType());
assertTrue(kemParams.getHkdfSalt().isEmpty());
assertEquals(AeadKeyTemplates.AES128_GCM.toString(), format.getParams().getDemParams().getAeadDem().toString());
}
Aggregations