1# package containing subtle implementations of PQC primitives 2 3package(default_visibility = ["//:__subpackages__"]) 4 5licenses(["notice"]) 6 7cc_library( 8 name = "cecpq2_hkdf_sender_kem_boringssl", 9 srcs = ["cecpq2_hkdf_sender_kem_boringssl.cc"], 10 hdrs = ["cecpq2_hkdf_sender_kem_boringssl.h"], 11 include_prefix = "tink/experimental/pqcrypto/kem/subtle", 12 visibility = ["//visibility:public"], 13 deps = [ 14 "//internal:fips_utils", 15 "//subtle", 16 "//subtle:common_enums", 17 "//subtle:hkdf", 18 "//subtle:random", 19 "//subtle:subtle_util", 20 "//util:secret_data", 21 "//util:statusor", 22 "@boringssl//:crypto", 23 "@com_google_absl//absl/memory", 24 "@com_google_absl//absl/status", 25 "@com_google_absl//absl/strings", 26 ], 27) 28 29cc_library( 30 name = "cecpq2_hkdf_recipient_kem_boringssl", 31 srcs = ["cecpq2_hkdf_recipient_kem_boringssl.cc"], 32 hdrs = ["cecpq2_hkdf_recipient_kem_boringssl.h"], 33 include_prefix = "tink/experimental/pqcrypto/kem/subtle", 34 visibility = ["//visibility:public"], 35 deps = [ 36 ":cecpq2_hkdf_sender_kem_boringssl", 37 "//internal:fips_utils", 38 "//subtle", 39 "//subtle:common_enums", 40 "//subtle:hkdf", 41 "//util:errors", 42 "//util:secret_data", 43 "//util:statusor", 44 "@boringssl//:crypto", 45 "@com_google_absl//absl/memory", 46 "@com_google_absl//absl/status", 47 "@com_google_absl//absl/strings", 48 ], 49) 50 51cc_library( 52 name = "cecpq2_subtle_boringssl_util", 53 srcs = ["cecpq2_subtle_boringssl_util.cc"], 54 hdrs = ["cecpq2_subtle_boringssl_util.h"], 55 include_prefix = "tink/experimental/pqcrypto/kem/subtle", 56 visibility = ["//visibility:public"], 57 deps = [ 58 "//subtle", 59 "//subtle:subtle_util", 60 "//util:secret_data", 61 "//util:statusor", 62 "@boringssl//:crypto", 63 ], 64) 65 66cc_library( 67 name = "cecpq2_aead_hkdf_hybrid_decrypt", 68 srcs = ["cecpq2_aead_hkdf_hybrid_decrypt.cc"], 69 hdrs = ["cecpq2_aead_hkdf_hybrid_decrypt.h"], 70 include_prefix = "tink/experimental/pqcrypto/kem/subtle", 71 visibility = ["//visibility:public"], 72 deps = [ 73 "//:hybrid_decrypt", 74 "//experimental/pqcrypto/kem:cecpq2_aead_hkdf_dem_helper", 75 "//experimental/pqcrypto/kem/subtle:cecpq2_hkdf_recipient_kem_boringssl", 76 "//experimental/pqcrypto/kem/subtle:cecpq2_subtle_boringssl_util", 77 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 78 "//subtle:ec_util", 79 "//util:enums", 80 "//util:secret_data", 81 "//util:status", 82 "//util:statusor", 83 "@boringssl//:crypto", 84 "@com_google_absl//absl/status", 85 "@com_google_absl//absl/strings", 86 ], 87) 88 89cc_library( 90 name = "cecpq2_aead_hkdf_hybrid_encrypt", 91 srcs = ["cecpq2_aead_hkdf_hybrid_encrypt.cc"], 92 hdrs = ["cecpq2_aead_hkdf_hybrid_encrypt.h"], 93 include_prefix = "tink/experimental/pqcrypto/kem/subtle", 94 visibility = ["//visibility:public"], 95 deps = [ 96 "//:aead", 97 "//:hybrid_encrypt", 98 "//experimental/pqcrypto/kem:cecpq2_aead_hkdf_dem_helper", 99 "//experimental/pqcrypto/kem/subtle:cecpq2_hkdf_sender_kem_boringssl", 100 "//experimental/pqcrypto/kem/subtle:cecpq2_subtle_boringssl_util", 101 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 102 "//util:enums", 103 "//util:status", 104 "//util:statusor", 105 "@com_google_absl//absl/status", 106 "@com_google_absl//absl/strings", 107 ], 108) 109 110#tests 111 112cc_test( 113 name = "cecpq2_hkdf_sender_kem_boringssl_test", 114 srcs = ["cecpq2_hkdf_sender_kem_boringssl_test.cc"], 115 deps = [ 116 ":cecpq2_hkdf_recipient_kem_boringssl", 117 ":cecpq2_hkdf_sender_kem_boringssl", 118 ":cecpq2_subtle_boringssl_util", 119 "//config:tink_fips", 120 "//subtle", 121 "//subtle:common_enums", 122 "//subtle:hkdf", 123 "//subtle:random", 124 "//subtle:subtle_util", 125 "//util:secret_data", 126 "//util:status", 127 "//util:statusor", 128 "//util:test_matchers", 129 "//util:test_util", 130 "@boringssl//:crypto", 131 "@com_google_absl//absl/memory", 132 "@com_google_absl//absl/status", 133 "@com_google_googletest//:gtest_main", 134 ], 135) 136 137cc_test( 138 name = "cecpq2_hkdf_recipient_kem_boringssl_test", 139 srcs = ["cecpq2_hkdf_recipient_kem_boringssl_test.cc"], 140 deps = [ 141 ":cecpq2_hkdf_recipient_kem_boringssl", 142 "//config:tink_fips", 143 "//subtle:random", 144 "//util:test_matchers", 145 "//util:test_util", 146 "@boringssl//:crypto", 147 "@com_google_absl//absl/status", 148 "@com_google_googletest//:gtest_main", 149 ], 150) 151 152cc_test( 153 name = "cecpq2_subtle_boringssl_util_test", 154 srcs = ["cecpq2_subtle_boringssl_util_test.cc"], 155 deps = [ 156 ":cecpq2_subtle_boringssl_util", 157 "//subtle:random", 158 "//subtle:subtle_util", 159 "//util:secret_data", 160 "//util:test_matchers", 161 "//util:test_util", 162 "@boringssl//:crypto", 163 "@com_google_googletest//:gtest_main", 164 ], 165) 166 167cc_test( 168 name = "cecpq2_aead_hkdf_hybrid_encrypt_test", 169 size = "small", 170 srcs = ["cecpq2_aead_hkdf_hybrid_encrypt_test.cc"], 171 copts = ["-Iexternal/gtest/include"], 172 deps = [ 173 ":cecpq2_aead_hkdf_hybrid_encrypt", 174 "//:hybrid_encrypt", 175 "//aead:aes_gcm_key_manager", 176 "//experimental/pqcrypto/kem/subtle:cecpq2_subtle_boringssl_util", 177 "//experimental/pqcrypto/kem/util:test_util", 178 "//subtle:random", 179 "//subtle:subtle_util", 180 "//util:enums", 181 "//util:statusor", 182 "//util:test_matchers", 183 "//util:test_util", 184 "@boringssl//:crypto", 185 "@com_google_absl//absl/status", 186 "@com_google_googletest//:gtest_main", 187 ], 188) 189 190cc_test( 191 name = "cecpq2_aead_hkdf_hybrid_decrypt_test", 192 size = "small", 193 srcs = ["cecpq2_aead_hkdf_hybrid_decrypt_test.cc"], 194 copts = ["-Iexternal/gtest/include"], 195 deps = [ 196 ":cecpq2_aead_hkdf_hybrid_decrypt", 197 ":cecpq2_aead_hkdf_hybrid_encrypt", 198 "//:hybrid_encrypt", 199 "//aead:aes_ctr_hmac_aead_key_manager", 200 "//aead:aes_gcm_key_manager", 201 "//aead:xchacha20_poly1305_key_manager", 202 "//config:tink_config", 203 "//experimental/pqcrypto/kem/subtle:cecpq2_subtle_boringssl_util", 204 "//experimental/pqcrypto/kem/util:test_util", 205 "//experimental/pqcrypto/proto:cecpq2_aead_hkdf_cc_proto", 206 "//subtle:random", 207 "//subtle:subtle_util", 208 "//util:enums", 209 "//util:statusor", 210 "//util:test_matchers", 211 "//util:test_util", 212 "@boringssl//:crypto", 213 "@com_google_absl//absl/status", 214 "@com_google_googletest//:gtest_main", 215 ], 216) 217