17#ifndef _RPC2_SECURE_H_
18#define _RPC2_SECURE_H_
21#include <sys/socket.h>
51#define MAXPACKETSIZE (4500)
57#define SECURE_ENCR_NULL 11
58#define SECURE_ENCR_AES_CBC 12
60#define SECURE_ENCR_AES_CCM_8 14
61#define SECURE_ENCR_AES_CCM_12 15
62#define SECURE_ENCR_AES_CCM_16 16
86#define SECURE_AUTH_NONE 0
88#define SECURE_AUTH_AES_XCBC_96 9
156#define SECURE_VERSION 1
169#define SECURE_PBKDF_ITERATIONS 10000
171 size_t slen,
size_t iterations,
uint8_t *key,
size_t keylen);
177ssize_t
secure_sendto(
int s,
const void *buf,
size_t len,
int flags,
179 const struct sockaddr *to,
socklen_t tolen,
183 struct sockaddr *peer,
socklen_t *peerlen,
188int secure_compare(
const void *user_data,
size_t user_len,
const void *secret,
unsigned int uint32_t
Definition: coda.h:105
unsigned char uint8_t
Definition: coda.h:101
int socklen_t
Definition: mariner.cc:73
int verbose
Definition: mkcodabf.c:30
def validate(configuration)
Definition: make_certs.py:157
void encrypt(char *buff)
Definition: rijndael-mikescott.c:267
void decrypt(char *buff)
Definition: rijndael-mikescott.c:314
int secure_setup_decrypt(uint32_t secure_version, struct security_association *sa, const struct secure_auth *validate, const struct secure_encr *decrypt, const uint8_t *key, size_t len)
Definition: secure_setup.c:77
int secure_compare(const void *user_data, size_t user_len, const void *secret, size_t secret_len)
Definition: secure_init.c:147
const struct secure_auth * secure_get_auth_byid(int id)
Definition: secure_init.c:70
int secure_setup_encrypt(uint32_t secure_version, struct security_association *sa, const struct secure_auth *authenticate, const struct secure_encr *encrypt, const uint8_t *key, size_t len)
Definition: secure_setup.c:24
int secure_pbkdf(const uint8_t *password, size_t plen, const uint8_t *salt, size_t slen, size_t iterations, uint8_t *key, size_t keylen)
Definition: secure_pbkdf.c:51
ssize_t secure_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen, struct security_association *sa)
Definition: secure_sendto.c:30
void secure_init(int verbose)
Definition: secure_init.c:49
void secure_random_bytes(void *buf, size_t len)
Definition: secure_random.c:365
ssize_t secure_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *peer, socklen_t *peerlen, struct security_association **sa, struct security_association *(*GETSA)(uint32_t spi))
Definition: secure_recvfrom.c:156
#define MAXIVLEN
Definition: secure.h:53
const struct secure_encr * secure_get_encr_byid(int id)
Definition: secure_init.c:78
void secure_release(void)
Definition: secure_init.c:64
void(* auth_free)(void **ctx)
Definition: secure.h:94
const int id
Definition: secure.h:91
const char * name
Definition: secure.h:92
const size_t icv_len
Definition: secure.h:97
int(* auth_init)(void **ctx, const uint8_t *key, size_t len)
Definition: secure.h:93
void(* auth)(void *ctx, const uint8_t *in, size_t len, uint8_t *icv)
Definition: secure.h:95
const size_t keysize
Definition: secure.h:96
void(* encrypt_free)(void **ctx)
Definition: secure.h:71
void(* decrypt_free)(void **ctx)
Definition: secure.h:75
int(* decrypt_init)(void **ctx, const uint8_t *key, size_t len)
Definition: secure.h:74
const size_t max_keysize
Definition: secure.h:79
const size_t icv_len
Definition: secure.h:82
int(* encrypt_init)(void **ctx, const uint8_t *key, size_t len)
Definition: secure.h:70
const size_t iv_len
Definition: secure.h:81
const size_t min_keysize
Definition: secure.h:78
int(* decrypt)(void *ctx, const uint8_t *in, uint8_t *out, size_t len, const uint8_t *iv, const uint8_t *aad, size_t aad_len)
Definition: secure.h:76
const int id
Definition: secure.h:68
const char * name
Definition: secure.h:69
int(* encrypt)(void *ctx, const uint8_t *in, uint8_t *out, size_t len, uint8_t *iv, const uint8_t *aad, size_t aad_len)
Definition: secure.h:72
const size_t blocksize
Definition: secure.h:80
unsigned long recv_win
Definition: secure.h:112
void * encrypt_context
Definition: secure.h:141
uint32_t peer_spi
Definition: secure.h:124
uint32_t peer_seq
Definition: secure.h:127
void * validate_context
Definition: secure.h:116
const struct secure_auth * authenticate
Definition: secure.h:144
struct sockaddr_storage peer
Definition: secure.h:132
void * authenticate_context
Definition: secure.h:145
uint32_t recv_seq
Definition: secure.h:111
const struct secure_auth * validate
Definition: secure.h:115
socklen_t peerlen
Definition: secure.h:133
const struct secure_encr * encrypt
Definition: secure.h:140
uint32_t recv_spi
Definition: secure.h:107
uint8_t send_iv[MAXIVLEN]
Definition: secure.h:137
const struct secure_encr * decrypt
Definition: secure.h:119
void * decrypt_context
Definition: secure.h:120
Definition: rpc2.private.h:63