# -*- mode: python -*- Import([ 'env', 'get_option', 'ssl_provider', ]) env = env.Clone() env.Library('sha1_block', source=[ 'sha1_block.cpp' ], LIBDEPS=[ '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/util/secure_compare_memory', ]) env.Library('sha256_block', source=[ 'sha256_block.cpp' ], LIBDEPS=[ '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/util/secure_compare_memory', ]) cryptoEnv = env.Clone() if "tom" in env["MONGO_CRYPTO"]: cryptoEnv.InjectThirdParty(libraries=['tomcrypt']) cryptoEnv.Append( CPPDEFINES=[ 'LTC_NO_PROTOTYPES', ] ) cryptoEnv.Library( target='sha_block_${MONGO_CRYPTO}', source=[ 'sha_block_${MONGO_CRYPTO}.cpp' ], LIBDEPS=[ '$BUILD_DIR/mongo/base', 'sha1_block', 'sha256_block', ], LIBDEPS_PRIVATE=[ '$BUILD_DIR/third_party/shim_tomcrypt' if "tom" in env["MONGO_CRYPTO"] else [], ] ) cryptoEnv.Library(target='symmetric_crypto', source=[ 'symmetric_crypto.cpp', 'symmetric_crypto_${MONGO_CRYPTO}.cpp', 'symmetric_key.cpp', ], LIBDEPS=[ '$BUILD_DIR/mongo/base/secure_allocator', '$BUILD_DIR/mongo/util/secure_zero_memory', ], LIBDEPS_PRIVATE=[ '$BUILD_DIR/third_party/shim_tomcrypt' if "tom" in env["MONGO_CRYPTO"] else [], ] ) env.Library( target="aead_encryption", source=[ "aead_encryption.cpp", ], LIBDEPS=[ 'fle_fields', 'sha_block_${MONGO_CRYPTO}', 'symmetric_crypto', ], ) env.Library( target="encrypted_field_config", source=[ "encryption_fields.idl", ], LIBDEPS=[ '$BUILD_DIR/mongo/idl/feature_flag', '$BUILD_DIR/mongo/idl/idl_parser', ] ) env.Library( target="fle_crypto", source=[ "encryption_fields_util.cpp", "fle_crypto.cpp", "fle_tags.cpp", ], LIBDEPS=[ '$BUILD_DIR/mongo/base/secure_allocator', '$BUILD_DIR/mongo/db/common', '$BUILD_DIR/mongo/idl/idl_parser', ], LIBDEPS_PRIVATE=[ '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/bson/util/bson_extract', '$BUILD_DIR/mongo/db/exec/document_value/document_value', '$BUILD_DIR/mongo/db/query/query_knobs', 'aead_encryption', 'encrypted_field_config', 'fle_fields', 'sha_block_${MONGO_CRYPTO}', ], ) env.Library( target="fle_fields", source=[ "fle_field_schema.idl", ], LIBDEPS=[ '$BUILD_DIR/mongo/idl/idl_parser', ] ) env.CppUnitTest( target='crypto_test', source=[ 'aead_encryption_test.cpp', 'encryption_fields_util_test.cpp', 'fle_crypto_test.cpp', 'mechanism_scram_test.cpp', 'sha1_block_test.cpp', 'sha256_block_test.cpp', 'sha512_block_test.cpp', 'symmetric_crypto_test.cpp', ], LIBDEPS=[ '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/base/secure_allocator', '$BUILD_DIR/mongo/util/net/openssl_init' if ssl_provider == 'openssl' else '', 'aead_encryption', 'encrypted_field_config', 'fle_crypto', 'sha_block_${MONGO_CRYPTO}', ], )