Module Name: src Committed By: riastradh Date: Sat Jul 25 22:12:57 UTC 2020
Modified Files: src/sys/arch/aarch64/aarch64: cpu.c src/sys/arch/arm/vfp: vfp_init.c src/sys/arch/x86/x86: identcpu.c src/sys/crypto/aes: aes.h aes_bear.c aes_impl.c aes_selftest.c src/sys/crypto/aes/arch/arm: aes_armv8.c aes_armv8.h aes_neon.h aes_neon_impl.c src/sys/crypto/aes/arch/x86: aes_ni.c aes_ni.h aes_sse2.h aes_sse2_impl.c aes_ssse3.h aes_ssse3_impl.c aes_via.c aes_via.h Added Files: src/sys/crypto/aes: aes_impl.h Log Message: Split aes_impl declarations out into aes_impl.h. This will make it less painful to add more operations to struct aes_impl without having to recompile everything that just uses the block cipher directly or similar. To generate a diff of this commit: cvs rdiff -u -r1.52 -r1.53 src/sys/arch/aarch64/aarch64/cpu.c cvs rdiff -u -r1.68 -r1.69 src/sys/arch/arm/vfp/vfp_init.c cvs rdiff -u -r1.113 -r1.114 src/sys/arch/x86/x86/identcpu.c cvs rdiff -u -r1.2 -r1.3 src/sys/crypto/aes/aes.h \ src/sys/crypto/aes/aes_bear.c src/sys/crypto/aes/aes_selftest.c cvs rdiff -u -r1.3 -r1.4 src/sys/crypto/aes/aes_impl.c cvs rdiff -u -r0 -r1.1 src/sys/crypto/aes/aes_impl.h cvs rdiff -u -r1.3 -r1.4 src/sys/crypto/aes/arch/arm/aes_armv8.c cvs rdiff -u -r1.1 -r1.2 src/sys/crypto/aes/arch/arm/aes_armv8.h \ src/sys/crypto/aes/arch/arm/aes_neon.h cvs rdiff -u -r1.2 -r1.3 src/sys/crypto/aes/arch/arm/aes_neon_impl.c cvs rdiff -u -r1.2 -r1.3 src/sys/crypto/aes/arch/x86/aes_ni.c \ src/sys/crypto/aes/arch/x86/aes_sse2.h \ src/sys/crypto/aes/arch/x86/aes_ssse3_impl.c cvs rdiff -u -r1.1 -r1.2 src/sys/crypto/aes/arch/x86/aes_ni.h \ src/sys/crypto/aes/arch/x86/aes_ssse3.h \ src/sys/crypto/aes/arch/x86/aes_via.h cvs rdiff -u -r1.3 -r1.4 src/sys/crypto/aes/arch/x86/aes_sse2_impl.c \ src/sys/crypto/aes/arch/x86/aes_via.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/aarch64/cpu.c diff -u src/sys/arch/aarch64/aarch64/cpu.c:1.52 src/sys/arch/aarch64/aarch64/cpu.c:1.53 --- src/sys/arch/aarch64/aarch64/cpu.c:1.52 Wed Jul 1 08:01:07 2020 +++ src/sys/arch/aarch64/aarch64/cpu.c Sat Jul 25 22:12:56 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.52 2020/07/01 08:01:07 ryo Exp $ */ +/* $NetBSD: cpu.c,v 1.53 2020/07/25 22:12:56 riastradh Exp $ */ /* * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.52 2020/07/01 08:01:07 ryo Exp $"); +__KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.53 2020/07/25 22:12:56 riastradh Exp $"); #include "locators.h" #include "opt_arm_debug.h" @@ -44,6 +44,7 @@ __KERNEL_RCSID(1, "$NetBSD: cpu.c,v 1.52 #include <sys/sysctl.h> #include <sys/systm.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/arm/aes_armv8.h> #include <crypto/aes/arch/arm/aes_neon.h> Index: src/sys/arch/arm/vfp/vfp_init.c diff -u src/sys/arch/arm/vfp/vfp_init.c:1.68 src/sys/arch/arm/vfp/vfp_init.c:1.69 --- src/sys/arch/arm/vfp/vfp_init.c:1.68 Mon Jul 13 16:54:03 2020 +++ src/sys/arch/arm/vfp/vfp_init.c Sat Jul 25 22:12:56 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: vfp_init.c,v 1.68 2020/07/13 16:54:03 riastradh Exp $ */ +/* $NetBSD: vfp_init.c,v 1.69 2020/07/25 22:12:56 riastradh Exp $ */ /* * Copyright (c) 2008 ARM Ltd @@ -32,7 +32,7 @@ #include "opt_cputypes.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfp_init.c,v 1.68 2020/07/13 16:54:03 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfp_init.c,v 1.69 2020/07/25 22:12:56 riastradh Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -50,7 +50,7 @@ __KERNEL_RCSID(0, "$NetBSD: vfp_init.c,v #include <uvm/uvm_extern.h> /* for pmap.h */ -#include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/arm/aes_neon.h> #ifdef FPU_VFP Index: src/sys/arch/x86/x86/identcpu.c diff -u src/sys/arch/x86/x86/identcpu.c:1.113 src/sys/arch/x86/x86/identcpu.c:1.114 --- src/sys/arch/x86/x86/identcpu.c:1.113 Mon Jul 20 16:45:41 2020 +++ src/sys/arch/x86/x86/identcpu.c Sat Jul 25 22:12:56 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: identcpu.c,v 1.113 2020/07/20 16:45:41 riastradh Exp $ */ +/* $NetBSD: identcpu.c,v 1.114 2020/07/25 22:12:56 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: identcpu.c,v 1.113 2020/07/20 16:45:41 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: identcpu.c,v 1.114 2020/07/25 22:12:56 riastradh Exp $"); #include "opt_xen.h" @@ -39,6 +39,7 @@ __KERNEL_RCSID(0, "$NetBSD: identcpu.c,v #include <sys/device.h> #include <sys/cpu.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/x86/aes_ni.h> #include <crypto/aes/arch/x86/aes_sse2.h> #include <crypto/aes/arch/x86/aes_ssse3.h> Index: src/sys/crypto/aes/aes.h diff -u src/sys/crypto/aes/aes.h:1.2 src/sys/crypto/aes/aes.h:1.3 --- src/sys/crypto/aes/aes.h:1.2 Mon Jun 29 23:47:54 2020 +++ src/sys/crypto/aes/aes.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes.h,v 1.2 2020/06/29 23:47:54 riastradh Exp $ */ +/* $NetBSD: aes.h,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -54,27 +54,6 @@ struct aesdec { union aes aesd_aes; }; -struct aes_impl { - const char *ai_name; - int (*ai_probe)(void); - void (*ai_setenckey)(struct aesenc *, const uint8_t *, uint32_t); - void (*ai_setdeckey)(struct aesdec *, const uint8_t *, uint32_t); - void (*ai_enc)(const struct aesenc *, const uint8_t[static 16], - uint8_t[static 16], uint32_t); - void (*ai_dec)(const struct aesdec *, const uint8_t[static 16], - uint8_t[static 16], uint32_t); - void (*ai_cbc_enc)(const struct aesenc *, const uint8_t[static 16], - uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); - void (*ai_cbc_dec)(const struct aesdec *, const uint8_t[static 16], - uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); - void (*ai_xts_enc)(const struct aesenc *, const uint8_t[static 16], - uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); - void (*ai_xts_dec)(const struct aesdec *, const uint8_t[static 16], - uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); -}; - -int aes_selftest(const struct aes_impl *); - uint32_t aes_setenckey128(struct aesenc *, const uint8_t[static 16]); uint32_t aes_setenckey192(struct aesenc *, const uint8_t[static 24]); uint32_t aes_setenckey256(struct aesenc *, const uint8_t[static 32]); @@ -97,6 +76,4 @@ void aes_xts_enc(struct aesenc *, const void aes_xts_dec(struct aesdec *, const uint8_t[static 16], uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); -void aes_md_init(const struct aes_impl *); - #endif /* _CRYPTO_AES_AES_H */ Index: src/sys/crypto/aes/aes_bear.c diff -u src/sys/crypto/aes/aes_bear.c:1.2 src/sys/crypto/aes/aes_bear.c:1.3 --- src/sys/crypto/aes/aes_bear.c:1.2 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/aes_bear.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_bear.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_bear.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_bear.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_bear.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $"); #include <sys/types.h> #include <sys/endian.h> @@ -44,6 +44,7 @@ __KERNEL_RCSID(1, "$NetBSD: aes_bear.c,v #include <crypto/aes/aes.h> #include <crypto/aes/aes_bear.h> +#include <crypto/aes/aes_impl.h> static void aesbear_setkey(uint32_t rk[static 60], const void *key, uint32_t nrounds) Index: src/sys/crypto/aes/aes_selftest.c diff -u src/sys/crypto/aes/aes_selftest.c:1.2 src/sys/crypto/aes/aes_selftest.c:1.3 --- src/sys/crypto/aes/aes_selftest.c:1.2 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/aes_selftest.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_selftest.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_selftest.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_selftest.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_selftest.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $"); #ifdef _KERNEL @@ -66,6 +66,7 @@ hexdump(int (*prf)(const char *, ...) __ #endif /* _KERNEL */ #include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> static const unsigned aes_keybytes[] __unused = { 16, 24, 32 }; static const unsigned aes_keybits[] __unused = { 128, 192, 256 }; Index: src/sys/crypto/aes/aes_impl.c diff -u src/sys/crypto/aes/aes_impl.c:1.3 src/sys/crypto/aes/aes_impl.c:1.4 --- src/sys/crypto/aes/aes_impl.c:1.3 Tue Jun 30 16:21:17 2020 +++ src/sys/crypto/aes/aes_impl.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_impl.c,v 1.3 2020/06/30 16:21:17 riastradh Exp $ */ +/* $NetBSD: aes_impl.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_impl.c,v 1.3 2020/06/30 16:21:17 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_impl.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $"); #include <sys/types.h> #include <sys/kernel.h> @@ -38,6 +38,7 @@ __KERNEL_RCSID(1, "$NetBSD: aes_impl.c,v #include <crypto/aes/aes.h> #include <crypto/aes/aes_bear.h> /* default implementation */ +#include <crypto/aes/aes_impl.h> static int aes_selftest_stdkeysched(void); Index: src/sys/crypto/aes/arch/arm/aes_armv8.c diff -u src/sys/crypto/aes/arch/arm/aes_armv8.c:1.3 src/sys/crypto/aes/arch/arm/aes_armv8.c:1.4 --- src/sys/crypto/aes/arch/arm/aes_armv8.c:1.3 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/arch/arm/aes_armv8.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_armv8.c,v 1.3 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_armv8.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_armv8.c,v 1.3 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_armv8.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $"); #ifdef _KERNEL #include <sys/types.h> @@ -43,6 +43,7 @@ __KERNEL_RCSID(1, "$NetBSD: aes_armv8.c, #endif #include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/arm/aes_armv8.h> #include <aarch64/armreg.h> Index: src/sys/crypto/aes/arch/arm/aes_armv8.h diff -u src/sys/crypto/aes/arch/arm/aes_armv8.h:1.1 src/sys/crypto/aes/arch/arm/aes_armv8.h:1.2 --- src/sys/crypto/aes/arch/arm/aes_armv8.h:1.1 Mon Jun 29 23:31:41 2020 +++ src/sys/crypto/aes/arch/arm/aes_armv8.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_armv8.h,v 1.1 2020/06/29 23:31:41 riastradh Exp $ */ +/* $NetBSD: aes_armv8.h,v 1.2 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -31,7 +31,10 @@ #include <sys/types.h> -#include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> + +struct aesenc; +struct aesdec; /* Assembly routines */ Index: src/sys/crypto/aes/arch/arm/aes_neon.h diff -u src/sys/crypto/aes/arch/arm/aes_neon.h:1.1 src/sys/crypto/aes/arch/arm/aes_neon.h:1.2 --- src/sys/crypto/aes/arch/arm/aes_neon.h:1.1 Mon Jun 29 23:56:31 2020 +++ src/sys/crypto/aes/arch/arm/aes_neon.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_neon.h,v 1.1 2020/06/29 23:56:31 riastradh Exp $ */ +/* $NetBSD: aes_neon.h,v 1.2 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,12 @@ #ifndef _CRYPTO_AES_ARCH_ARM_AES_NEON_H #define _CRYPTO_AES_ARCH_ARM_AES_NEON_H -#include <crypto/aes/aes.h> +#include <sys/types.h> + +#include <crypto/aes/aes_impl.h> + +struct aesenc; +struct aesdec; /* * These functions MUST NOT use any vector registers for parameters or Index: src/sys/crypto/aes/arch/arm/aes_neon_impl.c diff -u src/sys/crypto/aes/arch/arm/aes_neon_impl.c:1.2 src/sys/crypto/aes/arch/arm/aes_neon_impl.c:1.3 --- src/sys/crypto/aes/arch/arm/aes_neon_impl.c:1.2 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/arch/arm/aes_neon_impl.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_neon_impl.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_neon_impl.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,12 +27,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_neon_impl.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_neon_impl.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $"); #include <sys/types.h> #include <sys/proc.h> #include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/arm/aes_neon.h> #ifdef __aarch64__ Index: src/sys/crypto/aes/arch/x86/aes_ni.c diff -u src/sys/crypto/aes/arch/x86/aes_ni.c:1.2 src/sys/crypto/aes/arch/x86/aes_ni.c:1.3 --- src/sys/crypto/aes/arch/x86/aes_ni.c:1.2 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/arch/x86/aes_ni.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_ni.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_ni.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_ni.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_ni.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $"); #ifdef _KERNEL #include <sys/types.h> @@ -42,6 +42,7 @@ __KERNEL_RCSID(1, "$NetBSD: aes_ni.c,v 1 #endif #include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/x86/aes_ni.h> #ifdef _KERNEL Index: src/sys/crypto/aes/arch/x86/aes_sse2.h diff -u src/sys/crypto/aes/arch/x86/aes_sse2.h:1.2 src/sys/crypto/aes/arch/x86/aes_sse2.h:1.3 --- src/sys/crypto/aes/arch/x86/aes_sse2.h:1.2 Mon Jun 29 23:50:05 2020 +++ src/sys/crypto/aes/arch/x86/aes_sse2.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_sse2.h,v 1.2 2020/06/29 23:50:05 riastradh Exp $ */ +/* $NetBSD: aes_sse2.h,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,12 @@ #ifndef _CRYPTO_AES_ARCH_X86_AES_SSE2_H #define _CRYPTO_AES_ARCH_X86_AES_SSE2_H -#include <crypto/aes/aes.h> +#include <sys/types.h> + +#include <crypto/aes/aes_impl.h> + +struct aesenc; +struct aesdec; /* * These functions MUST NOT use any vector registers for parameters or Index: src/sys/crypto/aes/arch/x86/aes_ssse3_impl.c diff -u src/sys/crypto/aes/arch/x86/aes_ssse3_impl.c:1.2 src/sys/crypto/aes/arch/x86/aes_ssse3_impl.c:1.3 --- src/sys/crypto/aes/arch/x86/aes_ssse3_impl.c:1.2 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/arch/x86/aes_ssse3_impl.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_ssse3_impl.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_ssse3_impl.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,9 +27,10 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_ssse3_impl.c,v 1.2 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_ssse3_impl.c,v 1.3 2020/07/25 22:12:57 riastradh Exp $"); #include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/x86/aes_ssse3.h> #ifdef _KERNEL Index: src/sys/crypto/aes/arch/x86/aes_ni.h diff -u src/sys/crypto/aes/arch/x86/aes_ni.h:1.1 src/sys/crypto/aes/arch/x86/aes_ni.h:1.2 --- src/sys/crypto/aes/arch/x86/aes_ni.h:1.1 Mon Jun 29 23:29:40 2020 +++ src/sys/crypto/aes/arch/x86/aes_ni.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_ni.h,v 1.1 2020/06/29 23:29:40 riastradh Exp $ */ +/* $NetBSD: aes_ni.h,v 1.2 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -31,7 +31,10 @@ #include <sys/types.h> -#include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> + +struct aesenc; +struct aesdec; /* Assembly routines */ Index: src/sys/crypto/aes/arch/x86/aes_ssse3.h diff -u src/sys/crypto/aes/arch/x86/aes_ssse3.h:1.1 src/sys/crypto/aes/arch/x86/aes_ssse3.h:1.2 --- src/sys/crypto/aes/arch/x86/aes_ssse3.h:1.1 Mon Jun 29 23:51:35 2020 +++ src/sys/crypto/aes/arch/x86/aes_ssse3.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_ssse3.h,v 1.1 2020/06/29 23:51:35 riastradh Exp $ */ +/* $NetBSD: aes_ssse3.h,v 1.2 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,12 @@ #ifndef _CRYPTO_AES_ARCH_X86_AES_SSSE3_H #define _CRYPTO_AES_ARCH_X86_AES_SSSE3_H -#include <crypto/aes/aes.h> +#include <sys/types.h> + +#include <crypto/aes/aes_impl.h> + +struct aesenc; +struct aesdec; /* * These functions MUST NOT use any vector registers for parameters or Index: src/sys/crypto/aes/arch/x86/aes_via.h diff -u src/sys/crypto/aes/arch/x86/aes_via.h:1.1 src/sys/crypto/aes/arch/x86/aes_via.h:1.2 --- src/sys/crypto/aes/arch/x86/aes_via.h:1.1 Mon Jun 29 23:39:30 2020 +++ src/sys/crypto/aes/arch/x86/aes_via.h Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_via.h,v 1.1 2020/06/29 23:39:30 riastradh Exp $ */ +/* $NetBSD: aes_via.h,v 1.2 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -29,7 +29,7 @@ #ifndef _CRYPTO_AES_ARCH_X86_AES_VIA_H #define _CRYPTO_AES_ARCH_X86_AES_VIA_H -#include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> extern struct aes_impl aes_via_impl; Index: src/sys/crypto/aes/arch/x86/aes_sse2_impl.c diff -u src/sys/crypto/aes/arch/x86/aes_sse2_impl.c:1.3 src/sys/crypto/aes/arch/x86/aes_sse2_impl.c:1.4 --- src/sys/crypto/aes/arch/x86/aes_sse2_impl.c:1.3 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/arch/x86/aes_sse2_impl.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_sse2_impl.c,v 1.3 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_sse2_impl.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,12 +27,13 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_sse2_impl.c,v 1.3 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_sse2_impl.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $"); #include <sys/types.h> #include <sys/endian.h> #include <crypto/aes/aes.h> +#include <crypto/aes/aes_impl.h> #include <crypto/aes/arch/x86/aes_sse2.h> #ifdef _KERNEL Index: src/sys/crypto/aes/arch/x86/aes_via.c diff -u src/sys/crypto/aes/arch/x86/aes_via.c:1.3 src/sys/crypto/aes/arch/x86/aes_via.c:1.4 --- src/sys/crypto/aes/arch/x86/aes_via.c:1.3 Tue Jun 30 20:32:11 2020 +++ src/sys/crypto/aes/arch/x86/aes_via.c Sat Jul 25 22:12:57 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: aes_via.c,v 1.3 2020/06/30 20:32:11 riastradh Exp $ */ +/* $NetBSD: aes_via.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: aes_via.c,v 1.3 2020/06/30 20:32:11 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: aes_via.c,v 1.4 2020/07/25 22:12:57 riastradh Exp $"); #ifdef _KERNEL #include <sys/types.h> @@ -47,6 +47,7 @@ struct evcnt { uint64_t ev_count; }; #include <crypto/aes/aes.h> #include <crypto/aes/aes_bear.h> +#include <crypto/aes/aes_impl.h> #ifdef _KERNEL #include <x86/cpufunc.h> Added files: Index: src/sys/crypto/aes/aes_impl.h diff -u /dev/null src/sys/crypto/aes/aes_impl.h:1.1 --- /dev/null Sat Jul 25 22:12:57 2020 +++ src/sys/crypto/aes/aes_impl.h Sat Jul 25 22:12:57 2020 @@ -0,0 +1,60 @@ +/* $NetBSD: aes_impl.h,v 1.1 2020/07/25 22:12:57 riastradh Exp $ */ + +/*- + * Copyright (c) 2020 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _CRYPTO_AES_AES_IMPL_H +#define _CRYPTO_AES_AES_IMPL_H + +#include <sys/types.h> + +struct aesenc; +struct aesdec; + +struct aes_impl { + const char *ai_name; + int (*ai_probe)(void); + void (*ai_setenckey)(struct aesenc *, const uint8_t *, uint32_t); + void (*ai_setdeckey)(struct aesdec *, const uint8_t *, uint32_t); + void (*ai_enc)(const struct aesenc *, const uint8_t[static 16], + uint8_t[static 16], uint32_t); + void (*ai_dec)(const struct aesdec *, const uint8_t[static 16], + uint8_t[static 16], uint32_t); + void (*ai_cbc_enc)(const struct aesenc *, const uint8_t[static 16], + uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); + void (*ai_cbc_dec)(const struct aesdec *, const uint8_t[static 16], + uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); + void (*ai_xts_enc)(const struct aesenc *, const uint8_t[static 16], + uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); + void (*ai_xts_dec)(const struct aesdec *, const uint8_t[static 16], + uint8_t[static 16], size_t, uint8_t[static 16], uint32_t); +}; + +void aes_md_init(const struct aes_impl *); + +int aes_selftest(const struct aes_impl *); + +#endif /* _CRYPTO_AES_AES_IMPL_H */