
Materials_Compile.__default Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-cryptographic-material-providers Show documentation
Show all versions of aws-cryptographic-material-providers Show documentation
The AWS Cryptographic Material Providers Library for Java
// Class __default
// Dafny class __default compiled into Java
package Materials_Compile;
import software.amazon.cryptography.keystore.internaldafny.types.*;
import software.amazon.cryptography.materialproviders.internaldafny.types.*;
import AwsArnParsing_Compile.*;
import AwsKmsMrkMatchForDecrypt_Compile.*;
import AwsKmsUtils_Compile.*;
import KeyStoreErrorMessages_Compile.*;
import KmsArn_Compile.*;
import Structure_Compile.*;
import KMSKeystoreOperations_Compile.*;
import DDBKeystoreOperations_Compile.*;
import CreateKeys_Compile.*;
import CreateKeyStoreTable_Compile.*;
import GetKeys_Compile.*;
import AwsCryptographyKeyStoreOperations_Compile.*;
import software.amazon.cryptography.keystore.internaldafny.*;
import AlgorithmSuites_Compile.*;
@SuppressWarnings({"unchecked", "deprecation"})
public class __default {
public __default() {
}
public static Wrappers_Compile.Result InitializeEncryptionMaterials(software.amazon.cryptography.materialproviders.internaldafny.types.InitializeEncryptionMaterialsInput input) {
software.amazon.cryptography.materialproviders.internaldafny.types.InitializeEncryptionMaterialsInput _pat_let_tv0 = input;
software.amazon.cryptography.materialproviders.internaldafny.types.InitializeEncryptionMaterialsInput _pat_let_tv1 = input;
software.amazon.cryptography.materialproviders.internaldafny.types.InitializeEncryptionMaterialsInput _pat_let_tv2 = input;
Wrappers_Compile.Outcome _0_valueOrError0 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), !((input).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD()), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Encryption Context ")));
if ((_0_valueOrError0).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_0_valueOrError0).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _1_valueOrError1 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((java.util.function.Function)(_2_input) -> dafny.Helpers.Quantifier(((_2_input).dtor_requiredEncryptionContextKeys()).UniqueElements(), true, ((_forall_var_0_boxed0) -> {
dafny.DafnySequence extends java.lang.Byte> _forall_var_0 = ((dafny.DafnySequence extends java.lang.Byte>)(java.lang.Object)(_forall_var_0_boxed0));
dafny.DafnySequence extends java.lang.Byte> _3_key = (dafny.DafnySequence extends java.lang.Byte>)_forall_var_0;
if (UTF8.ValidUTF8Bytes._Is(_3_key)) {
return !(((_2_input).dtor_requiredEncryptionContextKeys()).contains(_3_key)) || (((_2_input).dtor_encryptionContext()).>contains(_3_key));
} else {
return true;
}
}))).apply(input), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Required encryption context keys do not exist in provided encryption context.")));
if ((_1_valueOrError1).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_1_valueOrError1).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _4_suite = AlgorithmSuites_Compile.__default.GetSuite((input).dtor_algorithmSuiteId());
Wrappers_Compile.Outcome _5_valueOrError2 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), (((_4_suite).dtor_signature()).is_ECDSA()) == ((((input).dtor_signingKey()).is_Some()) && (((input).dtor_verificationKey()).is_Some())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Missing signature key for signed suite.")));
if ((_5_valueOrError2).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_5_valueOrError2).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _6_valueOrError3 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), (((_4_suite).dtor_signature()).is_None()) == ((((input).dtor_signingKey()).is_None()) && (((input).dtor_verificationKey()).is_None())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Signature key not allowed for non-signed suites.")));
if ((_6_valueOrError3).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_6_valueOrError3).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Result, ? extends dafny.DafnySequence extends java.lang.Byte>>, software.amazon.cryptography.materialproviders.internaldafny.types.Error> _7_valueOrError4 = ((java.util.function.Function, ? extends dafny.DafnySequence extends java.lang.Byte>>, software.amazon.cryptography.materialproviders.internaldafny.types.Error>>)(_source0_boxed0) -> {
software.amazon.cryptography.materialproviders.internaldafny.types.SignatureAlgorithm _source0 = ((software.amazon.cryptography.materialproviders.internaldafny.types.SignatureAlgorithm)(java.lang.Object)(_source0_boxed0));
if (_source0.is_ECDSA()) {
software.amazon.cryptography.materialproviders.internaldafny.types.ECDSA _8___mcc_h0 = ((software.amazon.cryptography.materialproviders.internaldafny.types.SignatureAlgorithm_ECDSA)_source0)._ECDSA;
software.amazon.cryptography.materialproviders.internaldafny.types.ECDSA _9_curve = _8___mcc_h0;
Wrappers_Compile.Result, software.amazon.cryptography.materialproviders.internaldafny.types.Error> _10_valueOrError5 = (UTF8.__default.Encode(Base64_Compile.__default.Encode(((_pat_let_tv0).dtor_verificationKey()).dtor_value()))).MapFailure(UTF8.ValidUTF8Bytes._typeDescriptor(), dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((java.util.function.Function, software.amazon.cryptography.materialproviders.internaldafny.types.Error>)(_11_e_boxed0) -> {
dafny.DafnySequence extends Character> _11_e = ((dafny.DafnySequence extends Character>)(java.lang.Object)(_11_e_boxed0));
return software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(_11_e);
}));
if ((_10_valueOrError5).IsFailure(UTF8.ValidUTF8Bytes._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_10_valueOrError5)., ? extends dafny.DafnySequence extends java.lang.Byte>>>PropagateFailure(UTF8.ValidUTF8Bytes._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>_typeDescriptor(UTF8.ValidUTF8Bytes._typeDescriptor(), UTF8.ValidUTF8Bytes._typeDescriptor()));
} else {
dafny.DafnySequence extends java.lang.Byte> _12_enc__vk = (_10_valueOrError5).Extract(UTF8.ValidUTF8Bytes._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor());
return Wrappers_Compile.Result., ? extends dafny.DafnySequence extends java.lang.Byte>>, software.amazon.cryptography.materialproviders.internaldafny.types.Error>create_Success(dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>_typeDescriptor(UTF8.ValidUTF8Bytes._typeDescriptor(), UTF8.ValidUTF8Bytes._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>update((_pat_let_tv1).dtor_encryptionContext(), __default.EC__PUBLIC__KEY__FIELD(), _12_enc__vk));
}
} else {
software.amazon.cryptography.materialproviders.internaldafny.types.None _13___mcc_h2 = ((software.amazon.cryptography.materialproviders.internaldafny.types.SignatureAlgorithm_None)_source0)._None;
software.amazon.cryptography.materialproviders.internaldafny.types.SignatureAlgorithm _14_None = (_4_suite).dtor_signature();
return Wrappers_Compile.Result., ? extends dafny.DafnySequence extends java.lang.Byte>>, software.amazon.cryptography.materialproviders.internaldafny.types.Error>create_Success(dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>_typeDescriptor(UTF8.ValidUTF8Bytes._typeDescriptor(), UTF8.ValidUTF8Bytes._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), (_pat_let_tv2).dtor_encryptionContext());
}
}).apply((_4_suite).dtor_signature());
if ((_7_valueOrError4).IsFailure(dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>_typeDescriptor(UTF8.ValidUTF8Bytes._typeDescriptor(), UTF8.ValidUTF8Bytes._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_7_valueOrError4).PropagateFailure(dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>_typeDescriptor(UTF8.ValidUTF8Bytes._typeDescriptor(), UTF8.ValidUTF8Bytes._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
dafny.DafnyMap extends dafny.DafnySequence extends java.lang.Byte>, ? extends dafny.DafnySequence extends java.lang.Byte>> _15_encryptionContext = (_7_valueOrError4).Extract(dafny.DafnyMap., dafny.DafnySequence extends java.lang.Byte>>_typeDescriptor(UTF8.ValidUTF8Bytes._typeDescriptor(), UTF8.ValidUTF8Bytes._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor());
return Wrappers_Compile.Result.create_Success(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials.create(_4_suite, _15_encryptionContext, dafny.DafnySequence. empty(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptedDataKey._typeDescriptor()), (input).dtor_requiredEncryptionContextKeys(), Wrappers_Compile.Option.>create_None(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), (input).dtor_signingKey(), ((((_4_suite).dtor_symmetricSignature()).is_None()) ? (Wrappers_Compile.Option.>>create_None(dafny.DafnySequence.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())))) : (Wrappers_Compile.Option.>>create_Some(dafny.DafnySequence.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), dafny.DafnySequence.> empty(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())))))));
}
}
}
}
}
}
public static Wrappers_Compile.Result InitializeDecryptionMaterials(software.amazon.cryptography.materialproviders.internaldafny.types.InitializeDecryptionMaterialsInput input) {
Wrappers_Compile.Outcome _0_valueOrError0 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((java.util.function.Function)(_1_input) -> dafny.Helpers.Quantifier(((_1_input).dtor_requiredEncryptionContextKeys()).UniqueElements(), true, ((_forall_var_0_boxed0) -> {
dafny.DafnySequence extends java.lang.Byte> _forall_var_0 = ((dafny.DafnySequence extends java.lang.Byte>)(java.lang.Object)(_forall_var_0_boxed0));
dafny.DafnySequence extends java.lang.Byte> _2_key = (dafny.DafnySequence extends java.lang.Byte>)_forall_var_0;
if (UTF8.ValidUTF8Bytes._Is(_2_key)) {
return !(((_1_input).dtor_requiredEncryptionContextKeys()).contains(_2_key)) || (((_1_input).dtor_encryptionContext()).>contains(_2_key));
} else {
return true;
}
}))).apply(input), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Reporoduced encryption context key did not exist in provided encryption context.")));
if ((_0_valueOrError0).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_0_valueOrError0).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _3_suite = AlgorithmSuites_Compile.__default.GetSuite((input).dtor_algorithmSuiteId());
Wrappers_Compile.Outcome _4_valueOrError1 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), (((_3_suite).dtor_signature()).is_ECDSA()) == (((input).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Encryption Context missing verification key.")));
if ((_4_valueOrError1).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_4_valueOrError1).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _5_valueOrError2 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), (((_3_suite).dtor_signature()).is_None()) == (!((input).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(dafny.DafnySequence.asString("Verification key can not exist in non-signed Algorithm Suites.")));
if ((_5_valueOrError2).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_5_valueOrError2).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Result>, software.amazon.cryptography.materialproviders.internaldafny.types.Error> _6_valueOrError3 = __default.DecodeVerificationKey((input).dtor_encryptionContext());
if ((_6_valueOrError3).IsFailure(Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_6_valueOrError3).PropagateFailure(Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Option> _7_verificationKey = (_6_valueOrError3).Extract(Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor());
return Wrappers_Compile.Result.create_Success(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials.create(_3_suite, (input).dtor_encryptionContext(), (input).dtor_requiredEncryptionContextKeys(), Wrappers_Compile.Option.>create_None(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), _7_verificationKey, Wrappers_Compile.Option.>create_None(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()))));
}
}
}
}
}
public static Wrappers_Compile.Result>, software.amazon.cryptography.materialproviders.internaldafny.types.Error> DecodeVerificationKey(dafny.DafnyMap extends dafny.DafnySequence extends java.lang.Byte>, ? extends dafny.DafnySequence extends java.lang.Byte>> encryptionContext) {
if ((encryptionContext).>contains(__default.EC__PUBLIC__KEY__FIELD())) {
dafny.DafnySequence extends java.lang.Byte> _0_utf8Key = ((dafny.DafnySequence extends java.lang.Byte>)(java.lang.Object)((encryptionContext).get(__default.EC__PUBLIC__KEY__FIELD())));
Wrappers_Compile.Result, software.amazon.cryptography.materialproviders.internaldafny.types.Error> _1_valueOrError0 = (UTF8.__default.Decode(_0_utf8Key)).MapFailure(dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((java.util.function.Function, software.amazon.cryptography.materialproviders.internaldafny.types.Error>)(_2_e_boxed0) -> {
dafny.DafnySequence extends Character> _2_e = ((dafny.DafnySequence extends Character>)(java.lang.Object)(_2_e_boxed0));
return software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(_2_e);
}));
if ((_1_valueOrError0).IsFailure(dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_1_valueOrError0).>>PropagateFailure(dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())));
} else {
dafny.DafnySequence extends Character> _3_base64Key = (_1_valueOrError0).Extract(dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor());
Wrappers_Compile.Result, software.amazon.cryptography.materialproviders.internaldafny.types.Error> _4_valueOrError1 = (Base64_Compile.__default.Decode(_3_base64Key)).MapFailure(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), dafny.DafnySequence._typeDescriptor(dafny.TypeDescriptor.CHAR), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((java.util.function.Function, software.amazon.cryptography.materialproviders.internaldafny.types.Error>)(_5_e_boxed0) -> {
dafny.DafnySequence extends Character> _5_e = ((dafny.DafnySequence extends Character>)(java.lang.Object)(_5_e_boxed0));
return software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_AwsCryptographicMaterialProvidersException(_5_e);
}));
if ((_4_valueOrError1).IsFailure(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_4_valueOrError1).>>PropagateFailure(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())));
} else {
dafny.DafnySequence extends java.lang.Byte> _6_key = (_4_valueOrError1).Extract(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor());
return Wrappers_Compile.Result.>, software.amazon.cryptography.materialproviders.internaldafny.types.Error>create_Success(Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), Wrappers_Compile.Option.>create_Some(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), _6_key));
}
}
} else {
return Wrappers_Compile.Result.>, software.amazon.cryptography.materialproviders.internaldafny.types.Error>create_Success(Wrappers_Compile.Option.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), Wrappers_Compile.Option.>create_None(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())));
}
}
public static boolean ValidEncryptionMaterialsTransition(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials oldMat, software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials newMat)
{
return ((((((((((java.util.Objects.equals((newMat).dtor_algorithmSuite(), (oldMat).dtor_algorithmSuite())) && (((newMat).dtor_encryptionContext()).equals((oldMat).dtor_encryptionContext()))) && (((newMat).dtor_requiredEncryptionContextKeys()).equals((oldMat).dtor_requiredEncryptionContextKeys()))) && (java.util.Objects.equals((newMat).dtor_signingKey(), (oldMat).dtor_signingKey()))) && (((((oldMat).dtor_plaintextDataKey()).is_None()) && (((newMat).dtor_plaintextDataKey()).is_Some())) || (java.util.Objects.equals((oldMat).dtor_plaintextDataKey(), (newMat).dtor_plaintextDataKey())))) && (((newMat).dtor_plaintextDataKey()).is_Some())) && ((java.math.BigInteger.valueOf(((oldMat).dtor_encryptedDataKeys()).length())).compareTo(java.math.BigInteger.valueOf(((newMat).dtor_encryptedDataKeys()).length())) <= 0)) && ((((oldMat).dtor_encryptedDataKeys()).asDafnyMultiset()).isSubsetOf(((newMat).dtor_encryptedDataKeys()).asDafnyMultiset()))) && (!(!((((oldMat).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None())) || (((((newMat).dtor_symmetricSigningKeys()).is_Some()) && (((oldMat).dtor_symmetricSigningKeys()).is_Some())) && (((((oldMat).dtor_symmetricSigningKeys()).dtor_value()).asDafnyMultiset()).isSubsetOf((((newMat).dtor_symmetricSigningKeys()).dtor_value()).asDafnyMultiset()))))) && (__default.ValidEncryptionMaterials(oldMat))) && (__default.ValidEncryptionMaterials(newMat));
}
public static boolean ValidEncryptionMaterials(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials encryptionMaterials) {
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv0 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv1 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv2 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv3 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv4 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv5 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv6 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv7 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv8 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv9 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv10 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv11 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv12 = encryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials _pat_let_tv13 = encryptionMaterials;
return (AlgorithmSuites_Compile.__default.AlgorithmSuite_q((encryptionMaterials).dtor_algorithmSuite())) && (((boolean)(java.lang.Object)(dafny.Helpers.Let((encryptionMaterials).dtor_algorithmSuite(), boxed4 -> {
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _pat_let2_0 = ((software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo)(java.lang.Object)(boxed4));
return ((boolean)(java.lang.Object)(dafny.Helpers.Let(_pat_let2_0, boxed5 -> {
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _0_suite = ((software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo)(java.lang.Object)(boxed5));
return ((((((((((((_0_suite).dtor_signature()).is_None()) == (((_pat_let_tv0).dtor_signingKey()).is_None())) && (!(((_pat_let_tv1).dtor_plaintextDataKey()).is_Some()) || (java.util.Objects.equals(java.math.BigInteger.valueOf(AlgorithmSuites_Compile.__default.GetEncryptKeyLength(_0_suite)), java.math.BigInteger.valueOf((((_pat_let_tv2).dtor_plaintextDataKey()).dtor_value()).length()))))) && (!(((_pat_let_tv3).dtor_plaintextDataKey()).is_None()) || ((java.math.BigInteger.valueOf(((_pat_let_tv4).dtor_encryptedDataKeys()).length())).signum() == 0))) && ((!(((_0_suite).dtor_signature()).is_None())) == (((_pat_let_tv5).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD())))) && ((((_0_suite).dtor_signature()).is_ECDSA()) == (((_pat_let_tv6).dtor_signingKey()).is_Some()))) && ((!(((_0_suite).dtor_signature()).is_None())) == (((_pat_let_tv7).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD())))) && (!((((_0_suite).dtor_symmetricSignature()).is_HMAC()) && (((_pat_let_tv8).dtor_symmetricSigningKeys()).is_Some())) || (java.util.Objects.equals(java.math.BigInteger.valueOf((((_pat_let_tv9).dtor_symmetricSigningKeys()).dtor_value()).length()), java.math.BigInteger.valueOf(((_pat_let_tv10).dtor_encryptedDataKeys()).length()))))) && (!(((_0_suite).dtor_symmetricSignature()).is_HMAC()) || (((_pat_let_tv11).dtor_symmetricSigningKeys()).is_Some()))) && (!(((_0_suite).dtor_symmetricSignature()).is_None()) || (((_pat_let_tv12).dtor_symmetricSigningKeys()).is_None()))) && (((java.util.function.Function)(_1_encryptionMaterials) -> dafny.Helpers.Quantifier(((_1_encryptionMaterials).dtor_requiredEncryptionContextKeys()).UniqueElements(), true, ((_forall_var_0_boxed0) -> {
dafny.DafnySequence extends java.lang.Byte> _forall_var_0 = ((dafny.DafnySequence extends java.lang.Byte>)(java.lang.Object)(_forall_var_0_boxed0));
dafny.DafnySequence extends java.lang.Byte> _2_key = (dafny.DafnySequence extends java.lang.Byte>)_forall_var_0;
if (UTF8.ValidUTF8Bytes._Is(_2_key)) {
return !(((_1_encryptionMaterials).dtor_requiredEncryptionContextKeys()).contains(_2_key)) || (((_1_encryptionMaterials).dtor_encryptionContext()).>contains(_2_key));
} else {
return true;
}
}))).apply(_pat_let_tv13));
}
)));
}
))));
}
public static boolean EncryptionMaterialsHasPlaintextDataKey(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials encryptionMaterials) {
return ((((encryptionMaterials).dtor_plaintextDataKey()).is_Some()) && ((java.math.BigInteger.valueOf(((encryptionMaterials).dtor_encryptedDataKeys()).length())).signum() == 1)) && (__default.ValidEncryptionMaterials(encryptionMaterials));
}
public static Wrappers_Compile.Result EncryptionMaterialAddEncryptedDataKeys(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials encryptionMaterials, dafny.DafnySequence extends software.amazon.cryptography.materialproviders.internaldafny.types.EncryptedDataKey> encryptedDataKeysToAdd, Wrappers_Compile.Option>> symmetricSigningKeysToAdd)
{
Wrappers_Compile.Outcome _0_valueOrError0 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), __default.ValidEncryptionMaterials(encryptionMaterials), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Attempt to modify invalid encryption material.")));
if ((_0_valueOrError0).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_0_valueOrError0).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _1_valueOrError1 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((encryptionMaterials).dtor_plaintextDataKey()).is_Some(), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Adding encrypted data keys without a plaintext data key is not allowed.")));
if ((_1_valueOrError1).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_1_valueOrError1).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _2_valueOrError2 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), !((symmetricSigningKeysToAdd).is_None()) || ((((encryptionMaterials).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None()), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Adding encrypted data keys without a symmetric signing key when using symmetric signing is not allowed.")));
if ((_2_valueOrError2).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_2_valueOrError2).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _3_valueOrError3 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), !((symmetricSigningKeysToAdd).is_Some()) || (!((((encryptionMaterials).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Adding encrypted data keys with a symmetric signing key when not using symmetric signing is not allowed.")));
if ((_3_valueOrError3).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_3_valueOrError3).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Option>> _4_symmetricSigningKeys = (((symmetricSigningKeysToAdd).is_None()) ? ((encryptionMaterials).dtor_symmetricSigningKeys()) : (Wrappers_Compile.Option.>>create_Some(dafny.DafnySequence.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), dafny.DafnySequence.>concatenate(((encryptionMaterials).dtor_symmetricSigningKeys()).dtor_value(), (symmetricSigningKeysToAdd).dtor_value()))));
return Wrappers_Compile.Result.create_Success(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials.create((encryptionMaterials).dtor_algorithmSuite(), (encryptionMaterials).dtor_encryptionContext(), dafny.DafnySequence.concatenate((encryptionMaterials).dtor_encryptedDataKeys(), encryptedDataKeysToAdd), (encryptionMaterials).dtor_requiredEncryptionContextKeys(), (encryptionMaterials).dtor_plaintextDataKey(), (encryptionMaterials).dtor_signingKey(), _4_symmetricSigningKeys));
}
}
}
}
}
public static Wrappers_Compile.Result EncryptionMaterialAddDataKey(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials encryptionMaterials, dafny.DafnySequence extends java.lang.Byte> plaintextDataKey, dafny.DafnySequence extends software.amazon.cryptography.materialproviders.internaldafny.types.EncryptedDataKey> encryptedDataKeysToAdd, Wrappers_Compile.Option>> symmetricSigningKeysToAdd)
{
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _0_suite = (encryptionMaterials).dtor_algorithmSuite();
Wrappers_Compile.Outcome _1_valueOrError0 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), __default.ValidEncryptionMaterials(encryptionMaterials), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Attempt to modify invalid encryption material.")));
if ((_1_valueOrError0).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_1_valueOrError0).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _2_valueOrError1 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((encryptionMaterials).dtor_plaintextDataKey()).is_None(), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Attempt to modify plaintextDataKey.")));
if ((_2_valueOrError1).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_2_valueOrError1).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _3_valueOrError2 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), java.util.Objects.equals(java.math.BigInteger.valueOf(AlgorithmSuites_Compile.__default.GetEncryptKeyLength(_0_suite)), java.math.BigInteger.valueOf((plaintextDataKey).length())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("plaintextDataKey does not match Algorithm Suite specification.")));
if ((_3_valueOrError2).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_3_valueOrError2).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _4_valueOrError3 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((symmetricSigningKeysToAdd).is_None()) == ((((encryptionMaterials).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None()), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Adding encrypted data keys without a symmetric signing key when using symmetric signing is not allowed.")));
if ((_4_valueOrError3).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_4_valueOrError3).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _5_valueOrError4 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((symmetricSigningKeysToAdd).is_Some()) == (!((((encryptionMaterials).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidEncryptionMaterialsTransition(dafny.DafnySequence.asString("Adding encrypted data keys with a symmetric signing key when not using symmetric signing is not allowed.")));
if ((_5_valueOrError4).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_5_valueOrError4).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Option>> _6_symmetricSigningKeys = (((symmetricSigningKeysToAdd).is_None()) ? ((encryptionMaterials).dtor_symmetricSigningKeys()) : (Wrappers_Compile.Option.>>create_Some(dafny.DafnySequence.>_typeDescriptor(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor())), dafny.DafnySequence.>concatenate(((encryptionMaterials).dtor_symmetricSigningKeys()).dtor_value(), (symmetricSigningKeysToAdd).dtor_value()))));
return Wrappers_Compile.Result.create_Success(software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.EncryptionMaterials.create((encryptionMaterials).dtor_algorithmSuite(), (encryptionMaterials).dtor_encryptionContext(), dafny.DafnySequence.concatenate((encryptionMaterials).dtor_encryptedDataKeys(), encryptedDataKeysToAdd), (encryptionMaterials).dtor_requiredEncryptionContextKeys(), Wrappers_Compile.Option.>create_Some(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), plaintextDataKey), (encryptionMaterials).dtor_signingKey(), _6_symmetricSigningKeys));
}
}
}
}
}
}
public static boolean DecryptionMaterialsTransitionIsValid(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials oldMat, software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials newMat)
{
return ((((((((java.util.Objects.equals((newMat).dtor_algorithmSuite(), (oldMat).dtor_algorithmSuite())) && (((newMat).dtor_encryptionContext()).equals((oldMat).dtor_encryptionContext()))) && (((newMat).dtor_requiredEncryptionContextKeys()).equals((oldMat).dtor_requiredEncryptionContextKeys()))) && (java.util.Objects.equals((newMat).dtor_verificationKey(), (oldMat).dtor_verificationKey()))) && (((oldMat).dtor_plaintextDataKey()).is_None())) && (((newMat).dtor_plaintextDataKey()).is_Some())) && (((oldMat).dtor_symmetricSigningKey()).is_None())) && (__default.ValidDecryptionMaterials(oldMat))) && (__default.ValidDecryptionMaterials(newMat));
}
public static boolean ValidDecryptionMaterials(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials decryptionMaterials) {
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv0 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv1 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv2 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv3 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv4 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv5 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv6 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv7 = decryptionMaterials;
software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials _pat_let_tv8 = decryptionMaterials;
return (AlgorithmSuites_Compile.__default.AlgorithmSuite_q((decryptionMaterials).dtor_algorithmSuite())) && (((boolean)(java.lang.Object)(dafny.Helpers.Let((decryptionMaterials).dtor_algorithmSuite(), boxed6 -> {
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _pat_let3_0 = ((software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo)(java.lang.Object)(boxed6));
return ((boolean)(java.lang.Object)(dafny.Helpers.Let(_pat_let3_0, boxed7 -> {
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _0_suite = ((software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo)(java.lang.Object)(boxed7));
return ((((((!(((_pat_let_tv0).dtor_plaintextDataKey()).is_Some()) || (java.util.Objects.equals(java.math.BigInteger.valueOf(AlgorithmSuites_Compile.__default.GetEncryptKeyLength(_0_suite)), java.math.BigInteger.valueOf((((_pat_let_tv1).dtor_plaintextDataKey()).dtor_value()).length())))) && ((!(((_0_suite).dtor_signature()).is_None())) == (((_pat_let_tv2).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD())))) && ((((_0_suite).dtor_signature()).is_ECDSA()) == (((_pat_let_tv3).dtor_verificationKey()).is_Some()))) && ((!(((_0_suite).dtor_signature()).is_None())) == (((_pat_let_tv4).dtor_encryptionContext()).>contains(__default.EC__PUBLIC__KEY__FIELD())))) && (!(!(((_0_suite).dtor_symmetricSignature()).is_None())) || ((((_pat_let_tv5).dtor_plaintextDataKey()).is_Some()) == (((_pat_let_tv6).dtor_symmetricSigningKey()).is_Some())))) && (!(((_0_suite).dtor_symmetricSignature()).is_None()) || (((_pat_let_tv7).dtor_symmetricSigningKey()).is_None()))) && (((java.util.function.Function)(_1_decryptionMaterials) -> dafny.Helpers.Quantifier(((_1_decryptionMaterials).dtor_requiredEncryptionContextKeys()).UniqueElements(), true, ((_forall_var_0_boxed0) -> {
dafny.DafnySequence extends java.lang.Byte> _forall_var_0 = ((dafny.DafnySequence extends java.lang.Byte>)(java.lang.Object)(_forall_var_0_boxed0));
dafny.DafnySequence extends java.lang.Byte> _2_k = (dafny.DafnySequence extends java.lang.Byte>)_forall_var_0;
if (UTF8.ValidUTF8Bytes._Is(_2_k)) {
return !(((_1_decryptionMaterials).dtor_requiredEncryptionContextKeys()).contains(_2_k)) || (((_1_decryptionMaterials).dtor_encryptionContext()).>contains(_2_k));
} else {
return true;
}
}))).apply(_pat_let_tv8));
}
)));
}
))));
}
public static Wrappers_Compile.Result DecryptionMaterialsAddDataKey(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials decryptionMaterials, dafny.DafnySequence extends java.lang.Byte> plaintextDataKey, Wrappers_Compile.Option> symmetricSigningKey)
{
software.amazon.cryptography.materialproviders.internaldafny.types.AlgorithmSuiteInfo _0_suite = (decryptionMaterials).dtor_algorithmSuite();
Wrappers_Compile.Outcome _1_valueOrError0 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), __default.ValidDecryptionMaterials(decryptionMaterials), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidDecryptionMaterialsTransition(dafny.DafnySequence.asString("Attempt to modify invalid decryption material.")));
if ((_1_valueOrError0).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_1_valueOrError0).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _2_valueOrError1 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((decryptionMaterials).dtor_plaintextDataKey()).is_None(), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidDecryptionMaterialsTransition(dafny.DafnySequence.asString("Attempt to modify plaintextDataKey.")));
if ((_2_valueOrError1).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_2_valueOrError1).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _3_valueOrError2 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), java.util.Objects.equals(java.math.BigInteger.valueOf(AlgorithmSuites_Compile.__default.GetEncryptKeyLength(_0_suite)), java.math.BigInteger.valueOf((plaintextDataKey).length())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidDecryptionMaterialsTransition(dafny.DafnySequence.asString("plaintextDataKey does not match Algorithm Suite specification.")));
if ((_3_valueOrError2).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_3_valueOrError2).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _4_valueOrError3 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((symmetricSigningKey).is_Some()) == (!((((decryptionMaterials).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None())), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidDecryptionMaterialsTransition(dafny.DafnySequence.asString("symmetric signature key must be added with plaintextDataKey if using an algorithm suite with symmetric signing.")));
if ((_4_valueOrError3).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_4_valueOrError3).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
Wrappers_Compile.Outcome _5_valueOrError4 = Wrappers_Compile.__default.Need(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), ((symmetricSigningKey).is_None()) == ((((decryptionMaterials).dtor_algorithmSuite()).dtor_symmetricSignature()).is_None()), software.amazon.cryptography.materialproviders.internaldafny.types.Error.create_InvalidDecryptionMaterialsTransition(dafny.DafnySequence.asString("symmetric signature key cannot be added with plaintextDataKey if using an algorithm suite without symmetric signing.")));
if ((_5_valueOrError4).IsFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor())) {
return (_5_valueOrError4).PropagateFailure(software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor());
} else {
return Wrappers_Compile.Result.create_Success(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.Error._typeDescriptor(), software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials.create((decryptionMaterials).dtor_algorithmSuite(), (decryptionMaterials).dtor_encryptionContext(), (decryptionMaterials).dtor_requiredEncryptionContextKeys(), Wrappers_Compile.Option.>create_Some(dafny.DafnySequence._typeDescriptor(BoundedInts_Compile.uint8._typeDescriptor()), plaintextDataKey), (decryptionMaterials).dtor_verificationKey(), symmetricSigningKey));
}
}
}
}
}
}
public static boolean DecryptionMaterialsWithoutPlaintextDataKey(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials decryptionMaterials) {
return (((decryptionMaterials).dtor_plaintextDataKey()).is_None()) && (__default.ValidDecryptionMaterials(decryptionMaterials));
}
public static boolean DecryptionMaterialsWithPlaintextDataKey(software.amazon.cryptography.materialproviders.internaldafny.types.DecryptionMaterials decryptionMaterials) {
return (((decryptionMaterials).dtor_plaintextDataKey()).is_Some()) && (__default.ValidDecryptionMaterials(decryptionMaterials));
}
public static dafny.DafnySequence extends java.lang.Byte> EC__PUBLIC__KEY__FIELD()
{
dafny.DafnySequence extends java.lang.Byte> _0_s = dafny.DafnySequence. of((byte) 97, (byte) 119, (byte) 115, (byte) 45, (byte) 99, (byte) 114, (byte) 121, (byte) 112, (byte) 116, (byte) 111, (byte) 45, (byte) 112, (byte) 117, (byte) 98, (byte) 108, (byte) 105, (byte) 99, (byte) 45, (byte) 107, (byte) 101, (byte) 121);
return _0_s;
}
public static dafny.DafnySet extends dafny.DafnySequence extends java.lang.Byte>> RESERVED__KEY__VALUES()
{
return dafny.DafnySet.> of(__default.EC__PUBLIC__KEY__FIELD());
}
@Override
public java.lang.String toString() {
return "Materials._default";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy