Namespace crypto/trust_token's internal symbols. Required adding namespace support to `BORINGSSL_DEFINE_STACK_TRAITS`. Down from to 1019 to 949 exported symbols. Bug: 42220000 Change-Id: I89bd01bd030c854320cf3e16984d0e2e22640591 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/86050 Auto-Submit: Rudolf Polzer <rpolzer@google.com> Reviewed-by: Xiangfei Ding <xfding@google.com> Reviewed-by: David Benjamin <davidben@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/bench/trust_token.cc b/bench/trust_token.cc index 3bb57e1..f05e8b8 100644 --- a/bench/trust_token.cc +++ b/bench/trust_token.cc
@@ -22,6 +22,8 @@ #include "../crypto/mem_internal.h" #include "../crypto/trust_token/internal.h" +using namespace bssl; + namespace { const uint8_t kClientData[] = "\x70TEST CLIENT DATA"; @@ -153,7 +155,7 @@ void SpeedFinishIssue(benchmark::State &state) { for (auto _ : state) { size_t key_index2; - bssl::UniquePtr<STACK_OF(TRUST_TOKEN)> test_tokens( + UniquePtr<STACK_OF(TRUST_TOKEN)> test_tokens( TRUST_TOKEN_CLIENT_finish_issuance(client_.get(), &key_index2, free_issue_resp_.data(), free_issue_resp_.size())); @@ -267,21 +269,21 @@ private: size_t batchsize_; const TRUST_TOKEN_METHOD *method_; - bssl::UniquePtr<TRUST_TOKEN_CLIENT> client_; - bssl::UniquePtr<TRUST_TOKEN_ISSUER> issuer_; + UniquePtr<TRUST_TOKEN_CLIENT> client_; + UniquePtr<TRUST_TOKEN_ISSUER> issuer_; uint8_t priv_key_[TRUST_TOKEN_MAX_PRIVATE_KEY_SIZE]; uint8_t pub_key_[TRUST_TOKEN_MAX_PUBLIC_KEY_SIZE]; - bssl::UniquePtr<EVP_PKEY> priv_; - bssl::UniquePtr<EVP_PKEY> pub_; + UniquePtr<EVP_PKEY> priv_; + UniquePtr<EVP_PKEY> pub_; - bssl::Array<uint8_t> free_issue_msg_; - bssl::Array<uint8_t> free_issue_resp_; - bssl::UniquePtr<STACK_OF(TRUST_TOKEN_PRETOKEN)> pretokens_; + Array<uint8_t> free_issue_msg_; + Array<uint8_t> free_issue_resp_; + UniquePtr<STACK_OF(TRUST_TOKEN_PRETOKEN)> pretokens_; size_t key_index_; - bssl::UniquePtr<STACK_OF(TRUST_TOKEN)> tokens_; - bssl::Array<uint8_t> free_redeem_msg_; + UniquePtr<STACK_OF(TRUST_TOKEN)> tokens_; + Array<uint8_t> free_redeem_msg_; }; void BM_SpeedTrustTokenKeyGen(benchmark::State &state,
diff --git a/crypto/trust_token/internal.h b/crypto/trust_token/internal.h index 208e9c3..b3f055b 100644 --- a/crypto/trust_token/internal.h +++ b/crypto/trust_token/internal.h
@@ -25,10 +25,7 @@ #include <openssl/trust_token.h> -#if defined(__cplusplus) -extern "C" { -#endif - +BSSL_NAMESPACE_BEGIN // For the following cryptographic schemes, we use P-384 instead of our usual // choice of P-256. See Appendix I of @@ -80,7 +77,7 @@ // TRUST_TOKEN_PRETOKEN_free releases the memory associated with |token|. OPENSSL_EXPORT void TRUST_TOKEN_PRETOKEN_free(TRUST_TOKEN_PRETOKEN *token); -DEFINE_STACK_OF(TRUST_TOKEN_PRETOKEN) +DEFINE_NAMESPACED_STACK_OF(TRUST_TOKEN_PRETOKEN) // PMBTokens. @@ -254,6 +251,8 @@ size_t msg_len); +BSSL_NAMESPACE_END + // Trust Tokens internals. struct trust_token_method_st { @@ -271,14 +270,14 @@ // client_key_from_bytes decodes a client key from |in| and sets |key| // to the resulting key. It returns one on success and zero // on failure. - int (*client_key_from_bytes)(TRUST_TOKEN_CLIENT_KEY *key, const uint8_t *in, - size_t len); + int (*client_key_from_bytes)(bssl::TRUST_TOKEN_CLIENT_KEY *key, + const uint8_t *in, size_t len); // issuer_key_from_bytes decodes a issuer key from |in| and sets |key| // to the resulting key. It returns one on success and zero // on failure. - int (*issuer_key_from_bytes)(TRUST_TOKEN_ISSUER_KEY *key, const uint8_t *in, - size_t len); + int (*issuer_key_from_bytes)(bssl::TRUST_TOKEN_ISSUER_KEY *key, + const uint8_t *in, size_t len); // blind generates a new issuance request for |count| tokens. If // |include_message| is set, then |msg| is used to derive the token nonces. On @@ -288,9 +287,10 @@ // when the server responds. // // This function implements the AT.Usr0 operation. - STACK_OF(TRUST_TOKEN_PRETOKEN) *(*blind)(CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, size_t msg_len); + STACK_OF(bssl::TRUST_TOKEN_PRETOKEN) *(*blind)(CBB *cbb, size_t count, + int include_message, + const uint8_t *msg, + size_t msg_len); // sign parses a request for |num_requested| tokens from |cbs| and // issues |num_to_issue| tokens with |key| and a private metadata value of @@ -298,7 +298,7 @@ // success and zero on failure. // // This function implements the AT.Sig operation. - int (*sign)(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, + int (*sign)(const bssl::TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, size_t num_requested, size_t num_to_issue, uint8_t private_metadata); @@ -311,9 +311,9 @@ // // This function implements the AT.Usr1 operation. STACK_OF(TRUST_TOKEN) *(*unblind)( - const TRUST_TOKEN_CLIENT_KEY *key, - const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count, - uint32_t key_id); + const bssl::TRUST_TOKEN_CLIENT_KEY *key, + const STACK_OF(bssl::TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, + size_t count, uint32_t key_id); // read parses a token from |token| and verifies it using |key|. If // |include_message| is set, then the nonce is derived from |msg| and the salt @@ -321,7 +321,7 @@ // metadata bit in |out_nonce| and |*out_private_metadata|. Otherwise, it // returns zero. Note that, unlike the output of |unblind|, |token| does not // have a four-byte key ID prepended. - int (*read)(const TRUST_TOKEN_ISSUER_KEY *key, + int (*read)(const bssl::TRUST_TOKEN_ISSUER_KEY *key, uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], uint8_t *out_private_metadata, const uint8_t *token, size_t token_len, int include_message, const uint8_t *msg, @@ -337,6 +337,8 @@ int has_srr; }; +BSSL_NAMESPACE_BEGIN + // Structure representing a single Trust Token public key with the specified ID. struct trust_token_client_key_st { uint32_t id; @@ -350,6 +352,8 @@ TRUST_TOKEN_ISSUER_KEY key; }; +BSSL_NAMESPACE_END + struct trust_token_client_st { const TRUST_TOKEN_METHOD *method; @@ -358,13 +362,13 @@ // keys is the set of public keys that are supported by the client for // issuance/redemptions. - struct trust_token_client_key_st keys[6]; + struct bssl::trust_token_client_key_st keys[6]; // num_keys is the number of keys currently configured. size_t num_keys; // pretokens is the intermediate state during an active issuance. - STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens; + STACK_OF(bssl::TRUST_TOKEN_PRETOKEN) *pretokens; // srr_key is the public key used to verify the signature of the SRR. EVP_PKEY *srr_key; @@ -380,7 +384,7 @@ // keys is the set of private keys that are supported by the issuer for // issuance/redemptions. The public metadata is an index into this list of // keys. - struct trust_token_issuer_key_st keys[6]; + struct bssl::trust_token_issuer_key_st keys[6]; // num_keys is the number of keys currently configured. size_t num_keys; @@ -394,19 +398,10 @@ size_t metadata_key_len; }; - -#if defined(__cplusplus) -} // extern C - -extern "C++" { - BSSL_NAMESPACE_BEGIN BORINGSSL_MAKE_DELETER(TRUST_TOKEN_PRETOKEN, TRUST_TOKEN_PRETOKEN_free) BSSL_NAMESPACE_END -} // extern C++ -#endif - #endif // OPENSSL_HEADER_CRYPTO_TRUST_TOKEN_INTERNAL_H
diff --git a/crypto/trust_token/pmbtoken.cc b/crypto/trust_token/pmbtoken.cc index 0a819a8..d6749c7 100644 --- a/crypto/trust_token/pmbtoken.cc +++ b/crypto/trust_token/pmbtoken.cc
@@ -30,6 +30,8 @@ #include "internal.h" +using namespace bssl; + typedef int (*hash_t_func_t)(const EC_GROUP *group, EC_JACOBIAN *out, const uint8_t t[TRUST_TOKEN_NONCE_SIZE]); typedef int (*hash_s_func_t)(const EC_GROUP *group, EC_JACOBIAN *out, @@ -321,7 +323,7 @@ return 1; } -static STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_blind( +static STACK_OF(bssl::TRUST_TOKEN_PRETOKEN) *pmbtoken_blind( const PMBTOKEN_METHOD *method, CBB *cbb, size_t count, int include_message, const uint8_t *msg, size_t msg_len) { SHA512_CTX hash_ctx; @@ -1225,7 +1227,7 @@ return 1; } -int pmbtoken_exp1_generate_key(CBB *out_private, CBB *out_public) { +int bssl::pmbtoken_exp1_generate_key(CBB *out_private, CBB *out_public) { if (!pmbtoken_exp1_init_method()) { return 0; } @@ -1233,9 +1235,10 @@ return pmbtoken_generate_key(&pmbtoken_exp1_method, out_private, out_public); } -int pmbtoken_exp1_derive_key_from_secret(CBB *out_private, CBB *out_public, - const uint8_t *secret, - size_t secret_len) { +int bssl::pmbtoken_exp1_derive_key_from_secret(CBB *out_private, + CBB *out_public, + const uint8_t *secret, + size_t secret_len) { if (!pmbtoken_exp1_init_method()) { return 0; } @@ -1244,26 +1247,27 @@ out_public, secret, secret_len); } -int pmbtoken_exp1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, - const uint8_t *in, size_t len) { +int bssl::pmbtoken_exp1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, + const uint8_t *in, size_t len) { if (!pmbtoken_exp1_init_method()) { return 0; } return pmbtoken_client_key_from_bytes(&pmbtoken_exp1_method, key, in, len); } -int pmbtoken_exp1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, - const uint8_t *in, size_t len) { +int bssl::pmbtoken_exp1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, + const uint8_t *in, size_t len) { if (!pmbtoken_exp1_init_method()) { return 0; } return pmbtoken_issuer_key_from_bytes(&pmbtoken_exp1_method, key, in, len); } -STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_exp1_blind(CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, - size_t msg_len) { +STACK_OF(TRUST_TOKEN_PRETOKEN) *bssl::pmbtoken_exp1_blind(CBB *cbb, + size_t count, + int include_message, + const uint8_t *msg, + size_t msg_len) { if (!pmbtoken_exp1_init_method()) { return nullptr; } @@ -1271,9 +1275,9 @@ msg_len); } -int pmbtoken_exp1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, - size_t num_requested, size_t num_to_issue, - uint8_t private_metadata) { +int bssl::pmbtoken_exp1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, + CBS *cbs, size_t num_requested, + size_t num_to_issue, uint8_t private_metadata) { if (!pmbtoken_exp1_init_method()) { return 0; } @@ -1281,7 +1285,7 @@ num_to_issue, private_metadata); } -STACK_OF(TRUST_TOKEN) *pmbtoken_exp1_unblind( +STACK_OF(TRUST_TOKEN) *bssl::pmbtoken_exp1_unblind( const TRUST_TOKEN_CLIENT_KEY *key, const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count, uint32_t key_id) { @@ -1292,11 +1296,12 @@ key_id); } -int pmbtoken_exp1_read(const TRUST_TOKEN_ISSUER_KEY *key, - uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], - uint8_t *out_private_metadata, const uint8_t *token, - size_t token_len, int include_message, - const uint8_t *msg, size_t msg_len) { +int bssl::pmbtoken_exp1_read(const TRUST_TOKEN_ISSUER_KEY *key, + uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], + uint8_t *out_private_metadata, + const uint8_t *token, size_t token_len, + int include_message, const uint8_t *msg, + size_t msg_len) { if (!pmbtoken_exp1_init_method()) { return 0; } @@ -1305,7 +1310,7 @@ msg, msg_len); } -int pmbtoken_exp1_get_h_for_testing(uint8_t out[97]) { +int bssl::pmbtoken_exp1_get_h_for_testing(uint8_t out[97]) { if (!pmbtoken_exp1_init_method()) { return 0; } @@ -1396,7 +1401,7 @@ return 1; } -int pmbtoken_exp2_generate_key(CBB *out_private, CBB *out_public) { +int bssl::pmbtoken_exp2_generate_key(CBB *out_private, CBB *out_public) { if (!pmbtoken_exp2_init_method()) { return 0; } @@ -1405,9 +1410,10 @@ } -int pmbtoken_exp2_derive_key_from_secret(CBB *out_private, CBB *out_public, - const uint8_t *secret, - size_t secret_len) { +int bssl::pmbtoken_exp2_derive_key_from_secret(CBB *out_private, + CBB *out_public, + const uint8_t *secret, + size_t secret_len) { if (!pmbtoken_exp2_init_method()) { return 0; } @@ -1416,26 +1422,27 @@ out_public, secret, secret_len); } -int pmbtoken_exp2_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, - const uint8_t *in, size_t len) { +int bssl::pmbtoken_exp2_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, + const uint8_t *in, size_t len) { if (!pmbtoken_exp2_init_method()) { return 0; } return pmbtoken_client_key_from_bytes(&pmbtoken_exp2_method, key, in, len); } -int pmbtoken_exp2_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, - const uint8_t *in, size_t len) { +int bssl::pmbtoken_exp2_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, + const uint8_t *in, size_t len) { if (!pmbtoken_exp2_init_method()) { return 0; } return pmbtoken_issuer_key_from_bytes(&pmbtoken_exp2_method, key, in, len); } -STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_exp2_blind(CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, - size_t msg_len) { +STACK_OF(TRUST_TOKEN_PRETOKEN) *bssl::pmbtoken_exp2_blind(CBB *cbb, + size_t count, + int include_message, + const uint8_t *msg, + size_t msg_len) { if (!pmbtoken_exp2_init_method()) { return nullptr; } @@ -1443,9 +1450,9 @@ msg_len); } -int pmbtoken_exp2_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, - size_t num_requested, size_t num_to_issue, - uint8_t private_metadata) { +int bssl::pmbtoken_exp2_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, + CBS *cbs, size_t num_requested, + size_t num_to_issue, uint8_t private_metadata) { if (!pmbtoken_exp2_init_method()) { return 0; } @@ -1453,7 +1460,7 @@ num_to_issue, private_metadata); } -STACK_OF(TRUST_TOKEN) *pmbtoken_exp2_unblind( +STACK_OF(TRUST_TOKEN) *bssl::pmbtoken_exp2_unblind( const TRUST_TOKEN_CLIENT_KEY *key, const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count, uint32_t key_id) { @@ -1464,11 +1471,12 @@ key_id); } -int pmbtoken_exp2_read(const TRUST_TOKEN_ISSUER_KEY *key, - uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], - uint8_t *out_private_metadata, const uint8_t *token, - size_t token_len, int include_message, - const uint8_t *msg, size_t msg_len) { +int bssl::pmbtoken_exp2_read(const TRUST_TOKEN_ISSUER_KEY *key, + uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], + uint8_t *out_private_metadata, + const uint8_t *token, size_t token_len, + int include_message, const uint8_t *msg, + size_t msg_len) { if (!pmbtoken_exp2_init_method()) { return 0; } @@ -1477,7 +1485,7 @@ msg, msg_len); } -int pmbtoken_exp2_get_h_for_testing(uint8_t out[97]) { +int bssl::pmbtoken_exp2_get_h_for_testing(uint8_t out[97]) { if (!pmbtoken_exp2_init_method()) { return 0; } @@ -1568,7 +1576,7 @@ return 1; } -int pmbtoken_pst1_generate_key(CBB *out_private, CBB *out_public) { +int bssl::pmbtoken_pst1_generate_key(CBB *out_private, CBB *out_public) { if (!pmbtoken_pst1_init_method()) { return 0; } @@ -1577,9 +1585,10 @@ } -int pmbtoken_pst1_derive_key_from_secret(CBB *out_private, CBB *out_public, - const uint8_t *secret, - size_t secret_len) { +int bssl::pmbtoken_pst1_derive_key_from_secret(CBB *out_private, + CBB *out_public, + const uint8_t *secret, + size_t secret_len) { if (!pmbtoken_pst1_init_method()) { return 0; } @@ -1588,26 +1597,27 @@ out_public, secret, secret_len); } -int pmbtoken_pst1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, - const uint8_t *in, size_t len) { +int bssl::pmbtoken_pst1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, + const uint8_t *in, size_t len) { if (!pmbtoken_pst1_init_method()) { return 0; } return pmbtoken_client_key_from_bytes(&pmbtoken_pst1_method, key, in, len); } -int pmbtoken_pst1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, - const uint8_t *in, size_t len) { +int bssl::pmbtoken_pst1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, + const uint8_t *in, size_t len) { if (!pmbtoken_pst1_init_method()) { return 0; } return pmbtoken_issuer_key_from_bytes(&pmbtoken_pst1_method, key, in, len); } -STACK_OF(TRUST_TOKEN_PRETOKEN) *pmbtoken_pst1_blind(CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, - size_t msg_len) { +STACK_OF(TRUST_TOKEN_PRETOKEN) *bssl::pmbtoken_pst1_blind(CBB *cbb, + size_t count, + int include_message, + const uint8_t *msg, + size_t msg_len) { if (!pmbtoken_pst1_init_method()) { return nullptr; } @@ -1615,9 +1625,9 @@ msg_len); } -int pmbtoken_pst1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, - size_t num_requested, size_t num_to_issue, - uint8_t private_metadata) { +int bssl::pmbtoken_pst1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, + CBS *cbs, size_t num_requested, + size_t num_to_issue, uint8_t private_metadata) { if (!pmbtoken_pst1_init_method()) { return 0; } @@ -1625,7 +1635,7 @@ num_to_issue, private_metadata); } -STACK_OF(TRUST_TOKEN) *pmbtoken_pst1_unblind( +STACK_OF(TRUST_TOKEN) *bssl::pmbtoken_pst1_unblind( const TRUST_TOKEN_CLIENT_KEY *key, const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count, uint32_t key_id) { @@ -1636,11 +1646,12 @@ key_id); } -int pmbtoken_pst1_read(const TRUST_TOKEN_ISSUER_KEY *key, - uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], - uint8_t *out_private_metadata, const uint8_t *token, - size_t token_len, int include_message, - const uint8_t *msg, size_t msg_len) { +int bssl::pmbtoken_pst1_read(const TRUST_TOKEN_ISSUER_KEY *key, + uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], + uint8_t *out_private_metadata, + const uint8_t *token, size_t token_len, + int include_message, const uint8_t *msg, + size_t msg_len) { if (!pmbtoken_pst1_init_method()) { return 0; } @@ -1649,7 +1660,7 @@ msg, msg_len); } -int pmbtoken_pst1_get_h_for_testing(uint8_t out[97]) { +int bssl::pmbtoken_pst1_get_h_for_testing(uint8_t out[97]) { if (!pmbtoken_pst1_init_method()) { return 0; }
diff --git a/crypto/trust_token/trust_token.cc b/crypto/trust_token/trust_token.cc index c13da8b..4848bf6 100644 --- a/crypto/trust_token/trust_token.cc +++ b/crypto/trust_token/trust_token.cc
@@ -30,6 +30,8 @@ // protocol for issuing and redeeming tokens built on top of the PMBTokens // construction. +using namespace bssl; + const TRUST_TOKEN_METHOD *TRUST_TOKEN_experiment_v1() { static const TRUST_TOKEN_METHOD kMethod = { pmbtoken_exp1_generate_key, @@ -116,7 +118,7 @@ } -void TRUST_TOKEN_PRETOKEN_free(TRUST_TOKEN_PRETOKEN *pretoken) { +void bssl::TRUST_TOKEN_PRETOKEN_free(TRUST_TOKEN_PRETOKEN *pretoken) { OPENSSL_free(pretoken); } @@ -511,7 +513,7 @@ return 1; } -static const struct trust_token_issuer_key_st *trust_token_issuer_get_key( +static const struct bssl::trust_token_issuer_key_st *trust_token_issuer_get_key( const TRUST_TOKEN_ISSUER *ctx, uint32_t key_id) { for (size_t i = 0; i < ctx->num_keys; i++) { if (ctx->keys[i].id == key_id) {
diff --git a/crypto/trust_token/voprf.cc b/crypto/trust_token/voprf.cc index 42cb998..a701a7e 100644 --- a/crypto/trust_token/voprf.cc +++ b/crypto/trust_token/voprf.cc
@@ -29,6 +29,8 @@ #include "internal.h" +using namespace bssl; + typedef int (*hash_to_group_func_t)(const EC_GROUP *group, EC_JACOBIAN *out, const uint8_t t[TRUST_TOKEN_NONCE_SIZE]); typedef int (*hash_to_scalar_func_t)(const EC_GROUP *group, EC_SCALAR *out, @@ -193,11 +195,9 @@ return 1; } -static STACK_OF(TRUST_TOKEN_PRETOKEN) *voprf_blind(const VOPRF_METHOD *method, - CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, - size_t msg_len) { +static STACK_OF(bssl::TRUST_TOKEN_PRETOKEN) *voprf_blind( + const VOPRF_METHOD *method, CBB *cbb, size_t count, int include_message, + const uint8_t *msg, size_t msg_len) { SHA512_CTX hash_ctx; const EC_GROUP *group = method->group_func(); @@ -1119,38 +1119,38 @@ static VOPRF_METHOD voprf_exp2_method = { EC_group_p384, voprf_exp2_hash_to_group, voprf_exp2_hash_to_scalar}; -int voprf_exp2_generate_key(CBB *out_private, CBB *out_public) { +int bssl::voprf_exp2_generate_key(CBB *out_private, CBB *out_public) { return voprf_generate_key(&voprf_exp2_method, out_private, out_public); } -int voprf_exp2_derive_key_from_secret(CBB *out_private, CBB *out_public, - const uint8_t *secret, - size_t secret_len) { +int bssl::voprf_exp2_derive_key_from_secret(CBB *out_private, CBB *out_public, + const uint8_t *secret, + size_t secret_len) { return voprf_derive_key_from_secret(&voprf_exp2_method, out_private, out_public, secret, secret_len); } -int voprf_exp2_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, - const uint8_t *in, size_t len) { +int bssl::voprf_exp2_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, + const uint8_t *in, size_t len) { return voprf_client_key_from_bytes(&voprf_exp2_method, key, in, len); } -int voprf_exp2_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, - const uint8_t *in, size_t len) { +int bssl::voprf_exp2_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, + const uint8_t *in, size_t len) { return voprf_issuer_key_from_bytes(&voprf_exp2_method, key, in, len); } -STACK_OF(TRUST_TOKEN_PRETOKEN) *voprf_exp2_blind(CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, - size_t msg_len) { +STACK_OF(TRUST_TOKEN_PRETOKEN) *bssl::voprf_exp2_blind(CBB *cbb, size_t count, + int include_message, + const uint8_t *msg, + size_t msg_len) { return voprf_blind(&voprf_exp2_method, cbb, count, include_message, msg, msg_len); } -int voprf_exp2_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, - size_t num_requested, size_t num_to_issue, - uint8_t private_metadata) { +int bssl::voprf_exp2_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, + size_t num_requested, size_t num_to_issue, + uint8_t private_metadata) { if (private_metadata != 0) { return 0; } @@ -1158,7 +1158,7 @@ num_to_issue); } -STACK_OF(TRUST_TOKEN) *voprf_exp2_unblind( +STACK_OF(TRUST_TOKEN) *bssl::voprf_exp2_unblind( const TRUST_TOKEN_CLIENT_KEY *key, const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count, uint32_t key_id) { @@ -1166,11 +1166,11 @@ key_id); } -int voprf_exp2_read(const TRUST_TOKEN_ISSUER_KEY *key, - uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], - uint8_t *out_private_metadata, const uint8_t *token, - size_t token_len, int include_message, const uint8_t *msg, - size_t msg_len) { +int bssl::voprf_exp2_read(const TRUST_TOKEN_ISSUER_KEY *key, + uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], + uint8_t *out_private_metadata, const uint8_t *token, + size_t token_len, int include_message, + const uint8_t *msg, size_t msg_len) { return voprf_read(&voprf_exp2_method, key, out_nonce, token, token_len, include_message, msg, msg_len); } @@ -1195,38 +1195,38 @@ static VOPRF_METHOD voprf_pst1_method = { EC_group_p384, voprf_pst1_hash_to_group, voprf_pst1_hash_to_scalar}; -int voprf_pst1_generate_key(CBB *out_private, CBB *out_public) { +int bssl::voprf_pst1_generate_key(CBB *out_private, CBB *out_public) { return voprf_generate_key(&voprf_pst1_method, out_private, out_public); } -int voprf_pst1_derive_key_from_secret(CBB *out_private, CBB *out_public, - const uint8_t *secret, - size_t secret_len) { +int bssl::voprf_pst1_derive_key_from_secret(CBB *out_private, CBB *out_public, + const uint8_t *secret, + size_t secret_len) { return voprf_derive_key_from_secret(&voprf_pst1_method, out_private, out_public, secret, secret_len); } -int voprf_pst1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, - const uint8_t *in, size_t len) { +int bssl::voprf_pst1_client_key_from_bytes(TRUST_TOKEN_CLIENT_KEY *key, + const uint8_t *in, size_t len) { return voprf_client_key_from_bytes(&voprf_pst1_method, key, in, len); } -int voprf_pst1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, - const uint8_t *in, size_t len) { +int bssl::voprf_pst1_issuer_key_from_bytes(TRUST_TOKEN_ISSUER_KEY *key, + const uint8_t *in, size_t len) { return voprf_issuer_key_from_bytes(&voprf_pst1_method, key, in, len); } -STACK_OF(TRUST_TOKEN_PRETOKEN) *voprf_pst1_blind(CBB *cbb, size_t count, - int include_message, - const uint8_t *msg, - size_t msg_len) { +STACK_OF(TRUST_TOKEN_PRETOKEN) *bssl::voprf_pst1_blind(CBB *cbb, size_t count, + int include_message, + const uint8_t *msg, + size_t msg_len) { return voprf_blind(&voprf_pst1_method, cbb, count, include_message, msg, msg_len); } -int voprf_pst1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, - size_t num_requested, size_t num_to_issue, - uint8_t private_metadata) { +int bssl::voprf_pst1_sign(const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, + size_t num_requested, size_t num_to_issue, + uint8_t private_metadata) { if (private_metadata != 0) { return 0; } @@ -1235,7 +1235,7 @@ } -int voprf_pst1_sign_with_proof_scalar_for_testing( +int bssl::voprf_pst1_sign_with_proof_scalar_for_testing( const TRUST_TOKEN_ISSUER_KEY *key, CBB *cbb, CBS *cbs, size_t num_requested, size_t num_to_issue, uint8_t private_metadata, const uint8_t *proof_scalar_buf, size_t proof_scalar_len) { @@ -1247,18 +1247,18 @@ proof_scalar_buf, proof_scalar_len); } -STACK_OF(TRUST_TOKEN) *voprf_pst1_unblind( +STACK_OF(TRUST_TOKEN) *bssl::voprf_pst1_unblind( const TRUST_TOKEN_CLIENT_KEY *key, const STACK_OF(TRUST_TOKEN_PRETOKEN) *pretokens, CBS *cbs, size_t count, uint32_t key_id) { return voprf_unblind(&voprf_pst1_method, key, pretokens, cbs, count, key_id); } -int voprf_pst1_read(const TRUST_TOKEN_ISSUER_KEY *key, - uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], - uint8_t *out_private_metadata, const uint8_t *token, - size_t token_len, int include_message, const uint8_t *msg, - size_t msg_len) { +int bssl::voprf_pst1_read(const TRUST_TOKEN_ISSUER_KEY *key, + uint8_t out_nonce[TRUST_TOKEN_NONCE_SIZE], + uint8_t *out_private_metadata, const uint8_t *token, + size_t token_len, int include_message, + const uint8_t *msg, size_t msg_len) { return voprf_read(&voprf_pst1_method, key, out_nonce, token, token_len, include_message, msg, msg_len); }
diff --git a/include/openssl/stack.h b/include/openssl/stack.h index 77c30d7..7cb2fb5 100644 --- a/include/openssl/stack.h +++ b/include/openssl/stack.h
@@ -36,7 +36,7 @@ // Defining stacks. // STACK_OF expands to the stack type for |type|. -#define STACK_OF(type) struct stack_st_##type +#define STACK_OF(type) struct type##_stack_st // DECLARE_STACK_OF declares the |STACK_OF(type)| type. It does not make the // corresponding |sk_type_*| functions available. This macro should be used in @@ -47,6 +47,8 @@ // are |type| *. This macro makes the |sk_name_*| functions available. // // It is not necessary to use |DECLARE_STACK_OF| in files which use this macro. +// +// Must be used from the global namespace. #define DEFINE_NAMED_STACK_OF(name, type) \ BORINGSSL_DEFINE_STACK_OF_IMPL(name, type *, const type *) \ BORINGSSL_DEFINE_STACK_TRAITS(name, type, false) @@ -55,16 +57,36 @@ // |type| *. This macro makes the |sk_type_*| functions available. // // It is not necessary to use |DECLARE_STACK_OF| in files which use this macro. +// +// Must be used from the global namespace. #define DEFINE_STACK_OF(type) DEFINE_NAMED_STACK_OF(type, type) // DEFINE_CONST_STACK_OF defines |STACK_OF(type)| to be a stack whose elements // are const |type| *. This macro makes the |sk_type_*| functions available. // // It is not necessary to use |DECLARE_STACK_OF| in files which use this macro. +// +// Must be used from the global namespace. #define DEFINE_CONST_STACK_OF(type) \ BORINGSSL_DEFINE_STACK_OF_IMPL(type, const type *, const type *) \ BORINGSSL_DEFINE_STACK_TRAITS(type, const type, true) +// DEFINE_NAMESPACED_STACK_OF is same as DEFINE_STACK_OF but to be used for +// internal stacks from within the bssl namespace. +#define DEFINE_NAMESPACED_STACK_OF(type) \ + BORINGSSL_DEFINE_STACK_OF_IMPL(type, type *, const type *) \ + BSSL_NAMESPACE_END \ + BORINGSSL_DEFINE_STACK_TRAITS(type, type, false) \ + BSSL_NAMESPACE_BEGIN + +// DEFINE_NAMESPACED_CONST_STACK_OF is same as DEFINE_CONST_STACK_OF but to be +// used for internal stacks from within the bssl namespace. +#define DEFINE_NAMESPACED_CONST_STACK_OF(type) \ + BORINGSSL_DEFINE_STACK_OF_IMPL(type, const type *, const type *) \ + BSSL_NAMESPACE_END \ + BORINGSSL_DEFINE_STACK_TRAITS(type, const type, true) \ + BSSL_NAMESPACE_BEGIN + // Using stacks. //