Server : nginx/1.18.0 System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64 User : www-data ( 33) PHP Version : 8.0.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/nss/ |
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef _PK11_HPKE_H_
#define _PK11_HPKE_H_ 1
#include "blapit.h"
#include "seccomon.h"
#define CLEANUP \
PORT_Assert(rv == SECSuccess); \
cleanup
/* Error code must already be set. */
#define CHECK_RV(rv) \
if ((rv) != SECSuccess) { \
goto cleanup; \
}
/* Error code must already be set. */
#define CHECK_FAIL(cond) \
if ((cond)) { \
rv = SECFailure; \
goto cleanup; \
}
#define CHECK_FAIL_ERR(cond, err) \
if ((cond)) { \
PORT_SetError((err)); \
rv = SECFailure; \
goto cleanup; \
}
typedef enum {
HpkeModeBase = 0,
HpkeModePsk = 1,
} HpkeModeId;
/* https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hpke-08#section-7.1 */
typedef enum {
HpkeDhKemX25519Sha256 = 0x20,
} HpkeKemId;
typedef enum {
HpkeKdfHkdfSha256 = 1,
HpkeKdfHkdfSha384 = 2,
HpkeKdfHkdfSha512 = 3,
} HpkeKdfId;
typedef enum {
HpkeAeadAes128Gcm = 1,
HpkeAeadAes256Gcm = 2,
HpkeAeadChaCha20Poly1305 = 3,
} HpkeAeadId;
typedef struct hpkeKemParamsStr {
HpkeKemId id;
unsigned int Nsk;
unsigned int Nsecret;
unsigned int Npk;
SECOidTag oidTag;
CK_MECHANISM_TYPE hashMech;
} hpkeKemParams;
typedef struct hpkeKdfParamsStr {
HpkeKdfId id;
unsigned int Nh;
CK_MECHANISM_TYPE mech;
} hpkeKdfParams;
typedef struct hpkeAeadParamsStr {
HpkeAeadId id;
unsigned int Nk;
unsigned int Nn;
unsigned int tagLen;
CK_MECHANISM_TYPE mech;
} hpkeAeadParams;
typedef struct HpkeContextStr HpkeContext;
#endif /* _PK11_HPKE_H_ */