Lines Matching refs:kdir
855 struct ovpn_kkey_dir *kdir; in ovpn_create_kkey_dir() local
881 if (keylen > sizeof(kdir->key)) in ovpn_create_kkey_dir()
891 kdir = malloc(sizeof(struct ovpn_kkey_dir), M_OVPN, in ovpn_create_kkey_dir()
894 kdir->cipher = cipher; in ovpn_create_kkey_dir()
895 kdir->keylen = keylen; in ovpn_create_kkey_dir()
896 kdir->tx_seq = 1; in ovpn_create_kkey_dir()
897 memcpy(kdir->key, key, keylen); in ovpn_create_kkey_dir()
898 kdir->noncelen = ivlen; in ovpn_create_kkey_dir()
899 memcpy(kdir->nonce, iv, ivlen); in ovpn_create_kkey_dir()
901 if (kdir->cipher != OVPN_CIPHER_ALG_NONE) { in ovpn_create_kkey_dir()
906 if (kdir->cipher == OVPN_CIPHER_ALG_CHACHA20_POLY1305) in ovpn_create_kkey_dir()
913 csp.csp_cipher_klen = kdir->keylen; in ovpn_create_kkey_dir()
914 csp.csp_cipher_key = kdir->key; in ovpn_create_kkey_dir()
917 error = crypto_newsession(&kdir->cryptoid, &csp, in ovpn_create_kkey_dir()
920 free(kdir, M_OVPN); in ovpn_create_kkey_dir()
925 mtx_init(&kdir->replay_mtx, "if_ovpn rx replay", NULL, MTX_DEF); in ovpn_create_kkey_dir()
926 *kdirp = kdir; in ovpn_create_kkey_dir()
932 ovpn_free_kkey_dir(struct ovpn_kkey_dir *kdir) in ovpn_free_kkey_dir() argument
934 if (kdir == NULL) in ovpn_free_kkey_dir()
937 mtx_destroy(&kdir->replay_mtx); in ovpn_free_kkey_dir()
939 crypto_freesession(kdir->cryptoid); in ovpn_free_kkey_dir()
940 free(kdir, M_OVPN); in ovpn_free_kkey_dir()