XOR_KEY_SIZE
unsigned char privkey[XOR_KEY_SIZE];
unsigned char pubkey[XOR_KEY_SIZE];
if (XOR_KEY_SIZE != plen) {
keyblob = OPENSSL_memdup(xorxkey->pubkey, retlen = XOR_KEY_SIZE);
buf = OPENSSL_secure_malloc(XOR_KEY_SIZE);
memcpy(buf, xorxkey->privkey, XOR_KEY_SIZE);
oct.length = XOR_KEY_SIZE;
OPENSSL_secure_clear_free(buf, XOR_KEY_SIZE);
xorkey->privkey, XOR_KEY_SIZE, tbs, tbslen,
for (i = 0; i < XOR_KEY_SIZE; i++)
xorkey->privkey, XOR_KEY_SIZE, tbs, tbslen,
*secretlen = XOR_KEY_SIZE;
if (outlen < XOR_KEY_SIZE)
for (i = 0; i < XOR_KEY_SIZE; i++)
*ctlen = XOR_KEY_SIZE;
*sslen = XOR_KEY_SIZE;
memcpy(ct, ourkey->pubkey, XOR_KEY_SIZE);
*ctlen = XOR_KEY_SIZE;
|| !xor_derive(derivectx, ss, sslen, XOR_KEY_SIZE))
*sslen = XOR_KEY_SIZE;
if (ctlen != XOR_KEY_SIZE)
memcpy(peerkey->pubkey, ct, XOR_KEY_SIZE);
|| !xor_derive(derivectx, ss, sslen, XOR_KEY_SIZE))
static const unsigned char private_constant[XOR_KEY_SIZE] = {
unsigned char privkey[XOR_KEY_SIZE];
unsigned char pubkey[XOR_KEY_SIZE];
memcpy(tokey->pubkey, fromkey->pubkey, XOR_KEY_SIZE);
memcpy(tokey->privkey, fromkey->privkey, XOR_KEY_SIZE);
&& !OSSL_PARAM_set_int(p, XOR_KEY_SIZE))
p->return_size = XOR_KEY_SIZE;
if (p->data != NULL && p->data_size >= XOR_KEY_SIZE)
memcpy(p->data, key->pubkey, XOR_KEY_SIZE);
|| p->data_size != XOR_KEY_SIZE)
memcpy(key->pubkey, p->data, XOR_KEY_SIZE);
for (i = 0; i < XOR_KEY_SIZE; i++) {
ok = ok & (CRYPTO_memcmp(key1->privkey, key2->privkey, XOR_KEY_SIZE) == 0);
ok = ok & (CRYPTO_memcmp(key1->pubkey, key2->pubkey, XOR_KEY_SIZE) == 0);
if (RAND_bytes_ex(gctx->libctx, key->privkey, XOR_KEY_SIZE, 0) <= 0) {
for (i = 0; i < XOR_KEY_SIZE; i++)