/
usr
/
include
/
openssl
/
/usr/include/openssl
mkdir
upload
Name
Size
Mode
Actions
aes.h
3311
0644
edit
dl
rm
asn1.h
57736
0644
edit
dl
rm
asn1err.h
5169
0644
edit
dl
rm
asn1t.h
38601
0644
edit
dl
rm
async.h
3019
0644
edit
dl
rm
asyncerr.h
739
0644
edit
dl
rm
bio.h
41404
0644
edit
dl
rm
bioerr.h
2355
0644
edit
dl
rm
blowfish.h
2136
0644
edit
dl
rm
bn.h
22309
0644
edit
dl
rm
bnerr.h
1329
0644
edit
dl
rm
buffer.h
1591
0644
edit
dl
rm
buffererr.h
587
0644
edit
dl
rm
byteorder.h
8444
0644
edit
dl
rm
camellia.h
3266
0644
edit
dl
rm
cast.h
1880
0644
edit
dl
rm
cmac.h
1449
0644
edit
dl
rm
cmp.h
48038
0644
edit
dl
rm
cmperr.h
4821
0644
edit
dl
rm
cmp_util.h
1627
0644
edit
dl
rm
cms.h
31103
0644
edit
dl
rm
cmserr.h
4547
0644
edit
dl
rm
comp.h
4696
0644
edit
dl
rm
comperr.h
1002
0644
edit
dl
rm
conf.h
10387
0644
edit
dl
rm
conferr.h
1697
0644
edit
dl
rm
configuration-x86_64.h
4469
0644
edit
dl
rm
configuration.h
1584
0644
edit
dl
rm
conftypes.h
1176
0644
edit
dl
rm
conf_api.h
1328
0644
edit
dl
rm
core.h
7820
0644
edit
dl
rm
core_dispatch.h
46948
0644
edit
dl
rm
core_names.h
29842
0644
edit
dl
rm
core_object.h
1047
0644
edit
dl
rm
crmf.h
19644
0644
edit
dl
rm
crmferr.h
1858
0644
edit
dl
rm
crypto.h
23119
0644
edit
dl
rm
cryptoerr.h
1986
0644
edit
dl
rm
cryptoerr_legacy.h
48019
0644
edit
dl
rm
ct.h
22238
0644
edit
dl
rm
cterr.h
1241
0644
edit
dl
rm
decoder.h
4907
0644
edit
dl
rm
decodererr.h
740
0644
edit
dl
rm
des.h
7764
0644
edit
dl
rm
dh.h
13025
0644
edit
dl
rm
dherr.h
1702
0644
edit
dl
rm
dsa.h
10982
0644
edit
dl
rm
dsaerr.h
1164
0644
edit
dl
rm
dtls1.h
1239
0644
edit
dl
rm
ebcdic.h
1025
0644
edit
dl
rm
ec.h
62313
0644
edit
dl
rm
ecdh.h
361
0644
edit
dl
rm
ecdsa.h
361
0644
edit
dl
rm
ecerr.h
3359
0644
edit
dl
rm
encoder.h
4570
0644
edit
dl
rm
encodererr.h
741
0644
edit
dl
rm
engine.h
37536
0644
edit
dl
rm
engineerr.h
2034
0644
edit
dl
rm
err.h
20436
0644
edit
dl
rm
ess.h
8704
0644
edit
dl
rm
esserr.h
982
0644
edit
dl
rm
evp.h
95634
0644
edit
dl
rm
evperr.h
5528
0644
edit
dl
rm
e_os2.h
8445
0644
edit
dl
rm
e_ostime.h
1147
0644
edit
dl
rm
fips.h
601
0644
edit
dl
rm
fipskey.h
1236
0644
edit
dl
rm
fips_names.h
1638
0644
edit
dl
rm
hmac.h
1892
0644
edit
dl
rm
hpke.h
6081
0644
edit
dl
rm
http.h
4717
0644
edit
dl
rm
httperr.h
1851
0644
edit
dl
rm
idea.h
2285
0644
edit
dl
rm
indicator.h
818
0644
edit
dl
rm
kdf.h
5101
0644
edit
dl
rm
kdferr.h
480
0644
edit
dl
rm
lhash.h
33375
0644
edit
dl
rm
macros.h
10718
0644
edit
dl
rm
md2.h
1336
0644
edit
dl
rm
md4.h
1610
0644
edit
dl
rm
md5.h
1608
0644
edit
dl
rm
mdc2.h
1312
0644
edit
dl
rm
ml_kem.h
959
0644
edit
dl
rm
modes.h
8135
0644
edit
dl
rm
objects.h
7567
0644
edit
dl
rm
objectserr.h
686
0644
edit
dl
rm
obj_mac.h
289525
0644
edit
dl
rm
ocsp.h
27856
0644
edit
dl
rm
ocsperr.h
1636
0644
edit
dl
rm
opensslconf.h
510
0644
edit
dl
rm
opensslv.h
3449
0644
edit
dl
rm
ossl_typ.h
561
0644
edit
dl
rm
params.h
7060
0644
edit
dl
rm
param_build.h
2363
0644
edit
dl
rm
pem.h
22667
0644
edit
dl
rm
pem2.h
523
0644
edit
dl
rm
pemerr.h
1836
0644
edit
dl
rm
pkcs7.h
21871
0644
edit
dl
rm
pkcs7err.h
2242
0644
edit
dl
rm
pkcs12.h
17004
0644
edit
dl
rm
pkcs12err.h
1427
0644
edit
dl
rm
proverr.h
6414
0644
edit
dl
rm
provider.h
3383
0644
edit
dl
rm
prov_ssl.h
969
0644
edit
dl
rm
quic.h
2101
0644
edit
dl
rm
rand.h
4058
0644
edit
dl
rm
randerr.h
2486
0644
edit
dl
rm
rc2.h
1771
0644
edit
dl
rm
rc4.h
1075
0644
edit
dl
rm
rc5.h
2146
0644
edit
dl
rm
ripemd.h
1537
0644
edit
dl
rm
rsa.h
22299
0644
edit
dl
rm
rsaerr.h
3861
0644
edit
dl
rm
safestack.h
29154
0644
edit
dl
rm
seed.h
3611
0644
edit
dl
rm
self_test.h
4720
0644
edit
dl
rm
sha.h
4404
0644
edit
dl
rm
srp.h
15159
0644
edit
dl
rm
srtp.h
1888
0644
edit
dl
rm
ssl.h
122213
0644
edit
dl
rm
ssl2.h
625
0644
edit
dl
rm
ssl3.h
12748
0644
edit
dl
rm
sslerr.h
15413
0644
edit
dl
rm
sslerr_legacy.h
18269
0644
edit
dl
rm
stack.h
3122
0644
edit
dl
rm
store.h
14008
0644
edit
dl
rm
storeerr.h
1702
0644
edit
dl
rm
symhacks.h
1102
0644
edit
dl
rm
thread.h
865
0644
edit
dl
rm
tls1.h
63321
0644
edit
dl
rm
trace.h
10823
0644
edit
dl
rm
ts.h
19419
0644
edit
dl
rm
tserr.h
2077
0644
edit
dl
rm
txt_db.h
1635
0644
edit
dl
rm
types.h
7302
0644
edit
dl
rm
ui.h
18512
0644
edit
dl
rm
uierr.h
1062
0644
edit
dl
rm
whrlpool.h
1681
0644
edit
dl
rm
x509.h
67489
0644
edit
dl
rm
x509err.h
2316
0644
edit
dl
rm
x509v3.h
129347
0644
edit
dl
rm
x509v3err.h
3578
0644
edit
dl
rm
x509_acert.h
21919
0644
edit
dl
rm
x509_vfy.h
47176
0644
edit
dl
rm
Edit:
/usr/include/openssl/hpke.h
(6081B)
/* * Copyright 2022-2024 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the Apache License 2.0 (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ /* APIs and data structures for HPKE (RFC9180) */ #ifndef OSSL_HPKE_H #define OSSL_HPKE_H #pragma once #include <openssl/types.h> /* HPKE modes */ #define OSSL_HPKE_MODE_BASE 0 /* Base mode */ #define OSSL_HPKE_MODE_PSK 1 /* Pre-shared key mode */ #define OSSL_HPKE_MODE_AUTH 2 /* Authenticated mode */ #define OSSL_HPKE_MODE_PSKAUTH 3 /* PSK+authenticated mode */ /* * Max for ikm, psk, pskid, info and exporter contexts. * RFC9180, section 7.2.1 RECOMMENDS 64 octets but we have test vectors from * Appendix A.6.1 with a 66 octet IKM so we'll allow that. */ #define OSSL_HPKE_MAX_PARMLEN 66 #define OSSL_HPKE_MIN_PSKLEN 32 #define OSSL_HPKE_MAX_INFOLEN 1024 /* * The (16bit) HPKE algorithm ID IANA codepoints * If/when new IANA codepoints are added there are tables in * crypto/hpke/hpke_util.c that must also be updated. */ #define OSSL_HPKE_KEM_ID_RESERVED 0x0000 /* not used */ #define OSSL_HPKE_KEM_ID_P256 0x0010 /* NIST P-256 */ #define OSSL_HPKE_KEM_ID_P384 0x0011 /* NIST P-384 */ #define OSSL_HPKE_KEM_ID_P521 0x0012 /* NIST P-521 */ #define OSSL_HPKE_KEM_ID_X25519 0x0020 /* Curve25519 */ #define OSSL_HPKE_KEM_ID_X448 0x0021 /* Curve448 */ #define OSSL_HPKE_KDF_ID_RESERVED 0x0000 /* not used */ #define OSSL_HPKE_KDF_ID_HKDF_SHA256 0x0001 /* HKDF-SHA256 */ #define OSSL_HPKE_KDF_ID_HKDF_SHA384 0x0002 /* HKDF-SHA384 */ #define OSSL_HPKE_KDF_ID_HKDF_SHA512 0x0003 /* HKDF-SHA512 */ #define OSSL_HPKE_AEAD_ID_RESERVED 0x0000 /* not used */ #define OSSL_HPKE_AEAD_ID_AES_GCM_128 0x0001 /* AES-GCM-128 */ #define OSSL_HPKE_AEAD_ID_AES_GCM_256 0x0002 /* AES-GCM-256 */ #define OSSL_HPKE_AEAD_ID_CHACHA_POLY1305 0x0003 /* Chacha20-Poly1305 */ #define OSSL_HPKE_AEAD_ID_EXPORTONLY 0xFFFF /* export-only fake ID */ /* strings for suite components */ #define OSSL_HPKE_KEMSTR_P256 "P-256" /* KEM id 0x10 */ #define OSSL_HPKE_KEMSTR_P384 "P-384" /* KEM id 0x11 */ #define OSSL_HPKE_KEMSTR_P521 "P-521" /* KEM id 0x12 */ #define OSSL_HPKE_KEMSTR_X25519 "X25519" /* KEM id 0x20 */ #define OSSL_HPKE_KEMSTR_X448 "X448" /* KEM id 0x21 */ #define OSSL_HPKE_KDFSTR_256 "hkdf-sha256" /* KDF id 1 */ #define OSSL_HPKE_KDFSTR_384 "hkdf-sha384" /* KDF id 2 */ #define OSSL_HPKE_KDFSTR_512 "hkdf-sha512" /* KDF id 3 */ #define OSSL_HPKE_AEADSTR_AES128GCM "aes-128-gcm" /* AEAD id 1 */ #define OSSL_HPKE_AEADSTR_AES256GCM "aes-256-gcm" /* AEAD id 2 */ #define OSSL_HPKE_AEADSTR_CP "chacha20-poly1305" /* AEAD id 3 */ #define OSSL_HPKE_AEADSTR_EXP "exporter" /* AEAD id 0xff */ /* * Roles for use in creating an OSSL_HPKE_CTX, most * important use of this is to control nonce reuse. */ #define OSSL_HPKE_ROLE_SENDER 0 #define OSSL_HPKE_ROLE_RECEIVER 1 #ifdef __cplusplus extern "C" { #endif typedef struct { uint16_t kem_id; /* Key Encapsulation Method id */ uint16_t kdf_id; /* Key Derivation Function id */ uint16_t aead_id; /* AEAD alg id */ } OSSL_HPKE_SUITE; /** * Suite constants, use this like: * OSSL_HPKE_SUITE myvar = OSSL_HPKE_SUITE_DEFAULT; */ #ifndef OPENSSL_NO_ECX #define OSSL_HPKE_SUITE_DEFAULT \ { \ OSSL_HPKE_KEM_ID_X25519, \ OSSL_HPKE_KDF_ID_HKDF_SHA256, \ OSSL_HPKE_AEAD_ID_AES_GCM_128 \ } #else #define OSSL_HPKE_SUITE_DEFAULT \ { \ OSSL_HPKE_KEM_ID_P256, \ OSSL_HPKE_KDF_ID_HKDF_SHA256, \ OSSL_HPKE_AEAD_ID_AES_GCM_128 \ } #endif typedef struct ossl_hpke_ctx_st OSSL_HPKE_CTX; OSSL_HPKE_CTX *OSSL_HPKE_CTX_new(int mode, OSSL_HPKE_SUITE suite, int role, OSSL_LIB_CTX *libctx, const char *propq); void OSSL_HPKE_CTX_free(OSSL_HPKE_CTX *ctx); int OSSL_HPKE_encap(OSSL_HPKE_CTX *ctx, unsigned char *enc, size_t *enclen, const unsigned char *pub, size_t publen, const unsigned char *info, size_t infolen); int OSSL_HPKE_seal(OSSL_HPKE_CTX *ctx, unsigned char *ct, size_t *ctlen, const unsigned char *aad, size_t aadlen, const unsigned char *pt, size_t ptlen); int OSSL_HPKE_keygen(OSSL_HPKE_SUITE suite, unsigned char *pub, size_t *publen, EVP_PKEY **priv, const unsigned char *ikm, size_t ikmlen, OSSL_LIB_CTX *libctx, const char *propq); int OSSL_HPKE_decap(OSSL_HPKE_CTX *ctx, const unsigned char *enc, size_t enclen, EVP_PKEY *recippriv, const unsigned char *info, size_t infolen); int OSSL_HPKE_open(OSSL_HPKE_CTX *ctx, unsigned char *pt, size_t *ptlen, const unsigned char *aad, size_t aadlen, const unsigned char *ct, size_t ctlen); int OSSL_HPKE_export(OSSL_HPKE_CTX *ctx, unsigned char *secret, size_t secretlen, const unsigned char *label, size_t labellen); int OSSL_HPKE_CTX_set1_authpriv(OSSL_HPKE_CTX *ctx, EVP_PKEY *priv); int OSSL_HPKE_CTX_set1_authpub(OSSL_HPKE_CTX *ctx, const unsigned char *pub, size_t publen); int OSSL_HPKE_CTX_set1_psk(OSSL_HPKE_CTX *ctx, const char *pskid, const unsigned char *psk, size_t psklen); int OSSL_HPKE_CTX_set1_ikme(OSSL_HPKE_CTX *ctx, const unsigned char *ikme, size_t ikmelen); int OSSL_HPKE_CTX_set_seq(OSSL_HPKE_CTX *ctx, uint64_t seq); int OSSL_HPKE_CTX_get_seq(OSSL_HPKE_CTX *ctx, uint64_t *seq); int OSSL_HPKE_suite_check(OSSL_HPKE_SUITE suite); int OSSL_HPKE_get_grease_value(const OSSL_HPKE_SUITE *suite_in, OSSL_HPKE_SUITE *suite, unsigned char *enc, size_t *enclen, unsigned char *ct, size_t ctlen, OSSL_LIB_CTX *libctx, const char *propq); int OSSL_HPKE_str2suite(const char *str, OSSL_HPKE_SUITE *suite); size_t OSSL_HPKE_get_ciphertext_size(OSSL_HPKE_SUITE suite, size_t clearlen); size_t OSSL_HPKE_get_public_encap_size(OSSL_HPKE_SUITE suite); size_t OSSL_HPKE_get_recommended_ikmelen(OSSL_HPKE_SUITE suite); #ifdef __cplusplus } #endif #endif
Save
cmd:
run