Module Name: src Committed By: riastradh Date: Mon Jun 29 23:36:07 UTC 2020
Modified Files: src/sys/dev: cgd.c cgd_crypto.c cgd_crypto.h Log Message: cgd(4): Align IVs on the stack. This will make it easier for some hardware crypto support. To generate a diff of this commit: cvs rdiff -u -r1.136 -r1.137 src/sys/dev/cgd.c cvs rdiff -u -r1.24 -r1.25 src/sys/dev/cgd_crypto.c cvs rdiff -u -r1.12 -r1.13 src/sys/dev/cgd_crypto.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/cgd.c diff -u src/sys/dev/cgd.c:1.136 src/sys/dev/cgd.c:1.137 --- src/sys/dev/cgd.c:1.136 Mon Jun 29 23:35:26 2020 +++ src/sys/dev/cgd.c Mon Jun 29 23:36:06 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cgd.c,v 1.136 2020/06/29 23:35:26 riastradh Exp $ */ +/* $NetBSD: cgd.c,v 1.137 2020/06/29 23:36:06 riastradh Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cgd.c,v 1.136 2020/06/29 23:35:26 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cgd.c,v 1.137 2020/06/29 23:36:06 riastradh Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -1587,7 +1587,7 @@ cgd_cipher(struct cgd_softc *sc, void *d cfunc_cipher *cipher = sc->sc_cfuncs->cf_cipher; size_t blocksize = sc->sc_cdata.cf_blocksize; size_t todo; - char blkno_buf[CGD_MAXBLOCKSIZE]; + char blkno_buf[CGD_MAXBLOCKSIZE] __aligned(CGD_BLOCKALIGN); DPRINTF_FOLLOW(("cgd_cipher() dir=%d\n", dir)); Index: src/sys/dev/cgd_crypto.c diff -u src/sys/dev/cgd_crypto.c:1.24 src/sys/dev/cgd_crypto.c:1.25 --- src/sys/dev/cgd_crypto.c:1.24 Mon Jun 29 23:33:05 2020 +++ src/sys/dev/cgd_crypto.c Mon Jun 29 23:36:06 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cgd_crypto.c,v 1.24 2020/06/29 23:33:05 riastradh Exp $ */ +/* $NetBSD: cgd_crypto.c,v 1.25 2020/06/29 23:36:06 riastradh Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cgd_crypto.c,v 1.24 2020/06/29 23:33:05 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cgd_crypto.c,v 1.25 2020/06/29 23:36:06 riastradh Exp $"); #include <sys/param.h> #include <sys/kmem.h> @@ -167,7 +167,7 @@ cgd_cipher_aes_cbc(void *privdata, void const void *blkno, int dir) { struct aes_privdata *apd = privdata; - uint8_t iv[CGD_AES_BLOCK_SIZE] = {0}; + uint8_t iv[CGD_AES_BLOCK_SIZE] __aligned(CGD_AES_BLOCK_SIZE) = {0}; /* Compute the CBC IV as AES_k(blkno). */ aes_enc(&apd->ap_enckey, blkno, iv, apd->ap_nrounds); Index: src/sys/dev/cgd_crypto.h diff -u src/sys/dev/cgd_crypto.h:1.12 src/sys/dev/cgd_crypto.h:1.13 --- src/sys/dev/cgd_crypto.h:1.12 Sat Jun 13 22:15:06 2020 +++ src/sys/dev/cgd_crypto.h Mon Jun 29 23:36:06 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: cgd_crypto.h,v 1.12 2020/06/13 22:15:06 riastradh Exp $ */ +/* $NetBSD: cgd_crypto.h,v 1.13 2020/06/29 23:36:06 riastradh Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -39,6 +39,8 @@ #define CGD_3DES_BLOCK_SIZE 8 #define CGD_BF_BLOCK_SIZE 8 +#define CGD_BLOCKALIGN 16 + typedef void *(cfunc_init)(size_t, const void *, size_t *); typedef void (cfunc_destroy)(void *); typedef void (cfunc_cipher)(void *, void *, const void *, size_t,