Lines Matching refs:keys

238 lws_chacha_activate(struct lws_ssh_keys *keys)
240 if (keys->cipher) {
241 free(keys->cipher);
242 keys->cipher = NULL;
245 keys->cipher = malloc(sizeof(struct lws_cipher_chacha));
246 if (!keys->cipher)
249 memset(keys->cipher, 0, sizeof(struct lws_cipher_chacha));
251 /* uses 2 x 256-bit keys, so 512 bits (64 bytes) needed */
252 chacha_keysetup(K_2(keys), keys->key[SSH_KEYIDX_ENC], 256);
253 chacha_keysetup(K_1(keys), &keys->key[SSH_KEYIDX_ENC][32], 256);
255 keys->valid = 1;
256 keys->full_length = 1;
257 keys->padding_alignment = 8; // CHACHA_BLOCKLEN;
258 keys->MAC_length = POLY1305_TAGLEN;
264 lws_chacha_destroy(struct lws_ssh_keys *keys)
266 if (keys->cipher) {
267 free(keys->cipher);
268 keys->cipher = NULL;
273 lws_chachapoly_get_length(struct lws_ssh_keys *keys, uint32_t seq,
286 chacha_ivsetup(K_1(keys), seqbuf, NULL);
287 chacha_encrypt_bytes(K_1(keys), in4, buf, 4);
302 chachapoly_crypt(struct lws_ssh_keys *keys, u_int seqnr, u_char *dest,
316 chacha_ivsetup(K_2(keys), seqbuf, NULL);
317 chacha_encrypt_bytes(K_2(keys),
333 chacha_ivsetup(K_1(keys), seqbuf, NULL);
334 chacha_encrypt_bytes(K_1(keys), src, dest, aadlen);
338 chacha_ivsetup(K_2(keys), seqbuf, one);
339 chacha_encrypt_bytes(K_2(keys), src + aadlen, dest + aadlen, len);
355 lws_chacha_decrypt(struct lws_ssh_keys *keys, uint32_t seq,
358 return chachapoly_crypt(keys, seq, pt, ct, len - POLY1305_TAGLEN - 4, 4,
363 lws_chacha_encrypt(struct lws_ssh_keys *keys, uint32_t seq,
366 return chachapoly_crypt(keys, seq, pt, ct, len - 4, 4, 0, 1);