| 107 | const unsigned int MAX_BLOCKS_PER_SESSION = 1024; |
| 108 | |
| 109 | KeyMaterial_AES_GCM_GMAC make_key(NativeCryptoHandle key_id, bool encrypt) |
| 110 | { |
| 111 | KeyMaterial_AES_GCM_GMAC k; |
| 112 | |
| 113 | for (unsigned int i = 0; i < TransformKindIndex; ++i) { |
| 114 | k.transformation_kind[i] = 0; |
| 115 | } |
| 116 | k.transformation_kind[TransformKindIndex] = |
| 117 | encrypt ? CRYPTO_TRANSFORMATION_KIND_AES256_GCM |
| 118 | : CRYPTO_TRANSFORMATION_KIND_AES256_GMAC; |
| 119 | |
| 120 | k.master_salt.length(KEY_LEN_BYTES); |
| 121 | RAND_bytes(k.master_salt.get_buffer(), KEY_LEN_BYTES); |
| 122 | |
| 123 | const DDS::UInt32 key_id_u = static_cast<DDS::UInt32>(key_id); |
| 124 | for (unsigned int i = 0; i < sizeof k.sender_key_id; ++i) { |
| 125 | k.sender_key_id[i] = static_cast<ACE_CDR::Octet>(key_id_u >> (8 * i)); |
| 126 | } |
| 127 | |
| 128 | k.master_sender_key.length(KEY_LEN_BYTES); |
| 129 | RAND_bytes(k.master_sender_key.get_buffer(), KEY_LEN_BYTES); |
| 130 | |
| 131 | for (unsigned int i = 0; i < sizeof k.receiver_specific_key_id; ++i) { |
| 132 | k.receiver_specific_key_id[i] = 0; |
| 133 | } |
| 134 | |
| 135 | k.master_receiver_specific_key.length(0); |
| 136 | return k; |
| 137 | } |
| 138 | |
| 139 | const unsigned submessage_key_index = 0; |
| 140 | } |
no test coverage detected