x25519
ATTRIBUTE_WARN_UNUSED_RET int x25519(const u8 k[X25519_SIZE], const u8 u[X25519_SIZE], u8 res[X25519_SIZE]);
param.x25519.d_src[0] |= 64;
rc = s390x_pcc(S390X_SCALAR_MULTIPLY_X25519, ¶m.x25519) ? 0 : 1;
s390x_flip_endian32(u_dst, param.x25519.u_dst);
OPENSSL_cleanse(param.x25519.d_src, sizeof(param.x25519.d_src));
} x25519;
s390x_flip_endian32(param.x25519.u_src, u_src);
param.x25519.u_src[0] &= 0x7f;
s390x_x25519_mod_p(param.x25519.u_src);
s390x_flip_endian32(param.x25519.d_src, d_src);
param.x25519.d_src[31] &= 248;
param.x25519.d_src[0] &= 127;
MAKE_DECODER("X25519", x25519, ecx, PrivateKeyInfo);
MAKE_DECODER("X25519", x25519, ecx, SubjectPublicKeyInfo);
D2I_PUBKEY_NOCTX(x25519, ossl_d2i_X25519_PUBKEY)
MAKE_ENCODER(x25519, ecx, EncryptedPrivateKeyInfo, der);
MAKE_ENCODER(x25519, ecx, EncryptedPrivateKeyInfo, pem);
MAKE_ENCODER(x25519, ecx, PrivateKeyInfo, der);
MAKE_ENCODER(x25519, ecx, PrivateKeyInfo, pem);
MAKE_ENCODER(x25519, ecx, SubjectPublicKeyInfo, der);
MAKE_ENCODER(x25519, ecx, SubjectPublicKeyInfo, pem);
MAKE_TEXT_ENCODER(x25519, ecx);
MAKE_KEYMGMT_FUNCTIONS(x25519)
DECLARE_DISPATCH(x25519, 2);