mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-11-07 04:36:52 -10:00
Full release notes are available at https://www.openssh.com/txt/release-10.3 Selected highlights from the release notes: * ssh(1), sshd(8): remove bug compatibility for implementations that don't support rekeying. If such an implementation tries to interoperate with OpenSSH, it will now eventually fail when the transport needs rekeying. * ssh(1), sshd(8): support IANA-assigned codepoints for SSH agent forwarding, as per draft-ietf-sshm-ssh-agent. Support for the new names is advertised via the EXT_INFO message. If a server offers support for the new names, then they are used preferentially. * ssh(1): add a ~I escape option that shows information about the current SSH connection. * sshd(8): add 'invaliduser' penalty to PerSourcePenalties, which is applied to login attempts for usernames that do not match real accounts. Defaults to 5s to match 'authfail' but allows administrators to block such attempts for longer if desired. * Support the ed25519 signature scheme via libcrypto. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D56999
86 lines
2.3 KiB
C
86 lines
2.3 KiB
C
/* $OpenBSD: crypto_api.h,v 1.10 2025/10/30 23:19:33 djm Exp $ */
|
|
|
|
/*
|
|
* Assembled from generated headers and source files by Markus Friedl.
|
|
* Placed in the public domain.
|
|
*/
|
|
|
|
#ifndef crypto_api_h
|
|
#define crypto_api_h
|
|
|
|
#include "includes.h"
|
|
|
|
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
|
|
typedef int8_t crypto_int8;
|
|
typedef uint8_t crypto_uint8;
|
|
typedef int16_t crypto_int16;
|
|
typedef uint16_t crypto_uint16;
|
|
typedef int32_t crypto_int32;
|
|
typedef uint32_t crypto_uint32;
|
|
typedef int64_t crypto_int64;
|
|
typedef uint64_t crypto_uint64;
|
|
|
|
#define randombytes(buf, buf_len) arc4random_buf((buf), (buf_len))
|
|
#define small_random32() arc4random()
|
|
|
|
#define crypto_hash_sha512_BYTES 64U
|
|
|
|
#ifdef WITH_OPENSSL
|
|
#include <openssl/evp.h>
|
|
static inline int
|
|
crypto_hash_sha512(unsigned char *out, const unsigned char *in,
|
|
unsigned long long inlen)
|
|
{
|
|
|
|
if (!EVP_Digest(in, inlen, out, NULL, EVP_sha512(), NULL))
|
|
return -1;
|
|
return 0;
|
|
}
|
|
#else /* WITH_OPENSSL */
|
|
# ifdef HAVE_SHA2_H
|
|
# include <sha2.h>
|
|
# endif
|
|
static inline int
|
|
crypto_hash_sha512(unsigned char *out, const unsigned char *in,
|
|
unsigned long long inlen)
|
|
{
|
|
|
|
SHA2_CTX ctx;
|
|
|
|
SHA512Init(&ctx);
|
|
SHA512Update(&ctx, in, inlen);
|
|
SHA512Final(out, &ctx);
|
|
return 0;
|
|
}
|
|
#endif /* WITH_OPENSSL */
|
|
|
|
#define crypto_sign_ed25519_SECRETKEYBYTES 64U
|
|
#define crypto_sign_ed25519_PUBLICKEYBYTES 32U
|
|
#define crypto_sign_ed25519_BYTES 64U
|
|
|
|
int crypto_sign_ed25519(unsigned char *, unsigned long long *,
|
|
const unsigned char *, unsigned long long, const unsigned char *);
|
|
int crypto_sign_ed25519_open(unsigned char *, unsigned long long *,
|
|
const unsigned char *, unsigned long long, const unsigned char *);
|
|
int crypto_sign_ed25519_keypair(unsigned char *, unsigned char *);
|
|
|
|
#define crypto_kem_sntrup761_PUBLICKEYBYTES 1158
|
|
#define crypto_kem_sntrup761_SECRETKEYBYTES 1763
|
|
#define crypto_kem_sntrup761_CIPHERTEXTBYTES 1039
|
|
#define crypto_kem_sntrup761_BYTES 32
|
|
|
|
int crypto_kem_sntrup761_enc(unsigned char *cstr, unsigned char *k,
|
|
const unsigned char *pk);
|
|
int crypto_kem_sntrup761_dec(unsigned char *k,
|
|
const unsigned char *cstr, const unsigned char *sk);
|
|
int crypto_kem_sntrup761_keypair(unsigned char *pk, unsigned char *sk);
|
|
|
|
#define crypto_kem_mlkem768_PUBLICKEYBYTES 1184
|
|
#define crypto_kem_mlkem768_SECRETKEYBYTES 2400
|
|
#define crypto_kem_mlkem768_CIPHERTEXTBYTES 1088
|
|
#define crypto_kem_mlkem768_BYTES 32
|
|
|
|
#endif /* crypto_api_h */
|