alts_iovec_record_protocol.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2018 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 #ifndef GRPC_CORE_TSI_ALTS_ZERO_COPY_FRAME_PROTECTOR_ALTS_IOVEC_RECORD_PROTOCOL_H
20 #define GRPC_CORE_TSI_ALTS_ZERO_COPY_FRAME_PROTECTOR_ALTS_IOVEC_RECORD_PROTOCOL_H
21 
23 
24 #include <stdbool.h>
25 
27 
28 constexpr size_t kZeroCopyFrameMessageType = 0x06;
29 constexpr size_t kZeroCopyFrameLengthFieldSize = 4;
31 constexpr size_t kZeroCopyFrameHeaderSize =
33 
34 // Limit k on number of frames such that at most 2^(8 * k) frames can be sent.
36 constexpr size_t kAltsRecordProtocolFrameLimit = 5;
37 
38 /* An implementation of alts record protocol. The API is thread-compatible. */
39 
40 typedef struct iovec iovec_t;
41 
43 
48 
58  const alts_iovec_record_protocol* rp);
59 
71  const alts_iovec_record_protocol* rp, size_t max_protected_frame_size);
72 
92  alts_iovec_record_protocol* rp, const iovec_t* unprotected_vec,
93  size_t unprotected_vec_length, iovec_t header, iovec_t tag,
94  char** error_details);
95 
113  alts_iovec_record_protocol* rp, const iovec_t* protected_vec,
114  size_t protected_vec_length, iovec_t header, iovec_t tag,
115  char** error_details);
116 
135  alts_iovec_record_protocol* rp, const iovec_t* unprotected_vec,
136  size_t unprotected_vec_length, iovec_t protected_frame,
137  char** error_details);
138 
159  const iovec_t* protected_vec, size_t protected_vec_length,
160  iovec_t unprotected_data, char** error_details);
161 
187  gsec_aead_crypter* crypter, size_t overflow_size, bool is_client,
189  char** error_details);
190 
197 
198 #endif /* GRPC_CORE_TSI_ALTS_ZERO_COPY_FRAME_PROTECTOR_ALTS_IOVEC_RECORD_PROTOCOL_H \
199  */
alts_iovec_record_protocol_max_unprotected_data_size
size_t alts_iovec_record_protocol_max_unprotected_data_size(const alts_iovec_record_protocol *rp, size_t max_protected_frame_size)
Definition: alts_iovec_record_protocol.cc:177
alts_iovec_record_protocol_integrity_only_protect
grpc_status_code alts_iovec_record_protocol_integrity_only_protect(alts_iovec_record_protocol *rp, const iovec_t *unprotected_vec, size_t unprotected_vec_length, iovec_t header, iovec_t tag, char **error_details)
Definition: alts_iovec_record_protocol.cc:188
kZeroCopyFrameMessageType
constexpr size_t kZeroCopyFrameMessageType
Definition: alts_iovec_record_protocol.h:28
alts_iovec_record_protocol::is_protect
bool is_protect
Definition: alts_iovec_record_protocol.cc:36
alts_iovec_record_protocol
Definition: alts_iovec_record_protocol.cc:31
alts_iovec_record_protocol_destroy
void alts_iovec_record_protocol_destroy(alts_iovec_record_protocol *rp)
Definition: alts_iovec_record_protocol.cc:472
grpc_status_code
grpc_status_code
Definition: include/grpc/impl/codegen/status.h:28
kZeroCopyFrameMessageTypeFieldSize
constexpr size_t kZeroCopyFrameMessageTypeFieldSize
Definition: alts_iovec_record_protocol.h:30
tag
static void * tag(intptr_t t)
Definition: bad_client.cc:318
gsec.h
alts_iovec_record_protocol_integrity_only_unprotect
grpc_status_code alts_iovec_record_protocol_integrity_only_unprotect(alts_iovec_record_protocol *rp, const iovec_t *protected_vec, size_t protected_vec_length, iovec_t header, iovec_t tag, char **error_details)
Definition: alts_iovec_record_protocol.cc:243
alts_iovec_record_protocol_privacy_integrity_protect
grpc_status_code alts_iovec_record_protocol_privacy_integrity_protect(alts_iovec_record_protocol *rp, const iovec_t *unprotected_vec, size_t unprotected_vec_length, iovec_t protected_frame, char **error_details)
Definition: alts_iovec_record_protocol.cc:291
header
struct absl::base_internal::@2940::AllocList::Header header
alts_iovec_record_protocol_privacy_integrity_unprotect
grpc_status_code alts_iovec_record_protocol_privacy_integrity_unprotect(alts_iovec_record_protocol *rp, iovec_t header, const iovec_t *protected_vec, size_t protected_vec_length, iovec_t unprotected_data, char **error_details)
Definition: alts_iovec_record_protocol.cc:357
kZeroCopyFrameHeaderSize
constexpr size_t kZeroCopyFrameHeaderSize
Definition: alts_iovec_record_protocol.h:31
alts_iovec_record_protocol::crypter
gsec_aead_crypter * crypter
Definition: alts_iovec_record_protocol.cc:33
alts_iovec_record_protocol_create
grpc_status_code alts_iovec_record_protocol_create(gsec_aead_crypter *crypter, size_t overflow_size, bool is_client, bool is_integrity_only, bool is_protect, alts_iovec_record_protocol **rp, char **error_details)
Definition: alts_iovec_record_protocol.cc:429
iovec
Definition: gsec.h:33
alts_iovec_record_protocol_get_tag_length
size_t alts_iovec_record_protocol_get_tag_length(const alts_iovec_record_protocol *rp)
Definition: alts_iovec_record_protocol.cc:169
kAltsRecordProtocolRekeyFrameLimit
constexpr size_t kAltsRecordProtocolRekeyFrameLimit
Definition: alts_iovec_record_protocol.h:35
alts_iovec_record_protocol::is_integrity_only
bool is_integrity_only
Definition: alts_iovec_record_protocol.cc:35
alts_iovec_record_protocol_get_header_length
size_t alts_iovec_record_protocol_get_header_length()
Definition: alts_iovec_record_protocol.cc:165
gsec_aead_crypter
Definition: gsec.h:178
kZeroCopyFrameLengthFieldSize
constexpr size_t kZeroCopyFrameLengthFieldSize
Definition: alts_iovec_record_protocol.h:29
kAltsRecordProtocolFrameLimit
constexpr size_t kAltsRecordProtocolFrameLimit
Definition: alts_iovec_record_protocol.h:36
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:41