Module Name: src
Committed By: alnsn
Date: Mon Jan 2 14:28:29 UTC 2017
Modified Files:
src/sys/dev: cgd_crypto.c cgd_crypto.h
Log Message:
Replace numeric block sizes with symbolic names,
No functional change. Requested by mrg a couple of months ago.
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/dev/cgd_crypto.c
cvs rdiff -u -r1.9 -r1.10 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_crypto.c
diff -u src/sys/dev/cgd_crypto.c:1.14 src/sys/dev/cgd_crypto.c:1.15
--- src/sys/dev/cgd_crypto.c:1.14 Sun Dec 11 00:20:49 2016
+++ src/sys/dev/cgd_crypto.c Mon Jan 2 14:28:29 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: cgd_crypto.c,v 1.14 2016/12/11 00:20:49 alnsn Exp $ */
+/* $NetBSD: cgd_crypto.c,v 1.15 2017/01/02 14:28:29 alnsn 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.14 2016/12/11 00:20:49 alnsn Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cgd_crypto.c,v 1.15 2017/01/02 14:28:29 alnsn Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -199,7 +199,7 @@ struct aes_privdata {
struct aes_encdata {
keyInstance *ae_key; /* key for this direction */
- u_int8_t ae_iv[16]; /* Initialization Vector */
+ u_int8_t ae_iv[CGD_AES_BLOCK_SIZE]; /* Initialization Vector */
};
static void *
@@ -244,8 +244,10 @@ cgd_cipher_aes_cbc_prep(void *privdata,
KASSERT(cipher_ok > 0);
rijndael_blockEncrypt(&cipher, &apd->ap_enckey,
blkno_buf, blocksize * 8, iv);
- if (blocksize > 16)
- (void)memmove(iv, iv + blocksize - 16, 16);
+ if (blocksize > CGD_AES_BLOCK_SIZE) {
+ (void)memmove(iv, iv + blocksize - CGD_AES_BLOCK_SIZE,
+ CGD_AES_BLOCK_SIZE);
+ }
}
static void
@@ -258,7 +260,8 @@ aes_cbc_enc_int(void *privdata, void *ds
cipher_ok = rijndael_cipherInit(&cipher, MODE_CBC, ae->ae_iv);
KASSERT(cipher_ok > 0);
rijndael_blockEncrypt(&cipher, ae->ae_key, src, len * 8, dst);
- (void)memcpy(ae->ae_iv, (u_int8_t *)dst + (len - 16), 16);
+ (void)memcpy(ae->ae_iv, (u_int8_t *)dst +
+ (len - CGD_AES_BLOCK_SIZE), CGD_AES_BLOCK_SIZE);
}
static void
@@ -271,7 +274,8 @@ aes_cbc_dec_int(void *privdata, void *ds
cipher_ok = rijndael_cipherInit(&cipher, MODE_CBC, ae->ae_iv);
KASSERT(cipher_ok > 0);
rijndael_blockDecrypt(&cipher, ae->ae_key, src, len * 8, dst);
- (void)memcpy(ae->ae_iv, (const u_int8_t *)src + (len - 16), 16);
+ (void)memcpy(ae->ae_iv, (const u_int8_t *)src +
+ (len - CGD_AES_BLOCK_SIZE), CGD_AES_BLOCK_SIZE);
}
static void
@@ -281,7 +285,7 @@ cgd_cipher_aes_cbc(void *privdata, struc
struct aes_privdata *apd = privdata;
struct aes_encdata encd;
- (void)memcpy(encd.ae_iv, iv, 16);
+ (void)memcpy(encd.ae_iv, iv, CGD_AES_BLOCK_SIZE);
switch (dir) {
case CGD_CIPHER_ENCRYPT:
encd.ae_key = &apd->ap_enckey;
@@ -358,7 +362,7 @@ aes_xts_enc_int(void *privdata, void *ds
cipher_ok = rijndael_cipherInit(&cipher, MODE_XTS, ae->ae_iv);
KASSERT(cipher_ok > 0);
rijndael_blockEncrypt(&cipher, ae->ae_key, src, len * 8, dst);
- (void)memcpy(ae->ae_iv, cipher.IV, 16);
+ (void)memcpy(ae->ae_iv, cipher.IV, CGD_AES_BLOCK_SIZE);
}
static void
@@ -371,7 +375,7 @@ aes_xts_dec_int(void *privdata, void *ds
cipher_ok = rijndael_cipherInit(&cipher, MODE_XTS, ae->ae_iv);
KASSERT(cipher_ok > 0);
rijndael_blockDecrypt(&cipher, ae->ae_key, src, len * 8, dst);
- (void)memcpy(ae->ae_iv, cipher.IV, 16);
+ (void)memcpy(ae->ae_iv, cipher.IV, CGD_AES_BLOCK_SIZE);
}
static void
@@ -381,7 +385,7 @@ cgd_cipher_aes_xts(void *privdata, struc
struct aes_privdata *apd = privdata;
struct aes_encdata encd;
- (void)memcpy(encd.ae_iv, iv, 16);
+ (void)memcpy(encd.ae_iv, iv, CGD_AES_BLOCK_SIZE);
switch (dir) {
case CGD_CIPHER_ENCRYPT:
encd.ae_key = &apd->ap_enckey;
@@ -410,7 +414,7 @@ struct c3des_encdata {
des_key_schedule *ce_key1;
des_key_schedule *ce_key2;
des_key_schedule *ce_key3;
- u_int8_t ce_iv[8];
+ u_int8_t ce_iv[CGD_3DES_BLOCK_SIZE];
};
static void *
@@ -455,13 +459,15 @@ cgd_cipher_3des_cbc_prep(void *privdata,
const char *blkno_buf, size_t blocksize, int dir)
{
struct c3des_privdata *cp = privdata;
- char zero_iv[8];
+ char zero_iv[CGD_3DES_BLOCK_SIZE];
memset(zero_iv, 0, sizeof(zero_iv));
des_ede3_cbc_encrypt(blkno_buf, iv, blocksize,
cp->cp_key1, cp->cp_key2, cp->cp_key3, (des_cblock *)zero_iv, 1);
- if (blocksize > 8)
- (void)memmove(iv, iv + blocksize - 8, 8);
+ if (blocksize > CGD_3DES_BLOCK_SIZE) {
+ (void)memmove(iv, iv + blocksize - CGD_3DES_BLOCK_SIZE,
+ CGD_3DES_BLOCK_SIZE);
+ }
}
static void
@@ -471,7 +477,8 @@ c3des_cbc_enc_int(void *privdata, void *
des_ede3_cbc_encrypt(src, dst, len, *ce->ce_key1, *ce->ce_key2,
*ce->ce_key3, (des_cblock *)ce->ce_iv, 1);
- (void)memcpy(ce->ce_iv, (const u_int8_t *)dst + (len - 8), 8);
+ (void)memcpy(ce->ce_iv, (const u_int8_t *)dst +
+ (len - CGD_3DES_BLOCK_SIZE), CGD_3DES_BLOCK_SIZE);
}
static void
@@ -481,7 +488,8 @@ c3des_cbc_dec_int(void *privdata, void *
des_ede3_cbc_encrypt(src, dst, len, *ce->ce_key1, *ce->ce_key2,
*ce->ce_key3, (des_cblock *)ce->ce_iv, 0);
- (void)memcpy(ce->ce_iv, (const u_int8_t *)src + (len - 8), 8);
+ (void)memcpy(ce->ce_iv, (const u_int8_t *)src +
+ (len - CGD_3DES_BLOCK_SIZE), CGD_3DES_BLOCK_SIZE);
}
static void
@@ -491,7 +499,7 @@ cgd_cipher_3des_cbc(void *privdata, stru
struct c3des_privdata *cp = privdata;
struct c3des_encdata ce;
- (void)memcpy(ce.ce_iv, iv, 8);
+ (void)memcpy(ce.ce_iv, iv, CGD_3DES_BLOCK_SIZE);
ce.ce_key1 = &cp->cp_key1;
ce.ce_key2 = &cp->cp_key2;
ce.ce_key3 = &cp->cp_key3;
@@ -517,7 +525,7 @@ struct bf_privdata {
struct bf_encdata {
BF_KEY *be_key;
- u_int8_t be_iv[8];
+ u_int8_t be_iv[CGD_BF_BLOCK_SIZE];
};
static void *
@@ -554,12 +562,14 @@ cgd_cipher_bf_cbc_prep(void *privdata, c
const char *blkno_buf, size_t blocksize, int dir)
{
struct bf_privdata *bp = privdata;
- char zero_iv[8];
+ char zero_iv[CGD_BF_BLOCK_SIZE];
memset(zero_iv, 0, sizeof(zero_iv));
BF_cbc_encrypt(blkno_buf, iv, blocksize, &bp->bp_key, zero_iv, 1);
- if (blocksize > 8)
- (void)memmove(iv, iv + blocksize - 8, 8);
+ if (blocksize > CGD_BF_BLOCK_SIZE) {
+ (void)memmove(iv, iv + blocksize - CGD_BF_BLOCK_SIZE,
+ CGD_BF_BLOCK_SIZE);
+ }
}
static void
@@ -568,7 +578,8 @@ bf_cbc_enc_int(void *privdata, void *dst
struct bf_encdata *be = privdata;
BF_cbc_encrypt(src, dst, len, be->be_key, be->be_iv, 1);
- (void)memcpy(be->be_iv, (u_int8_t *)dst + (len - 8), 8);
+ (void)memcpy(be->be_iv, (u_int8_t *)dst +
+ (len - CGD_BF_BLOCK_SIZE), CGD_BF_BLOCK_SIZE);
}
static void
@@ -577,7 +588,8 @@ bf_cbc_dec_int(void *privdata, void *dst
struct bf_encdata *be = privdata;
BF_cbc_encrypt(src, dst, len, be->be_key, be->be_iv, 0);
- (void)memcpy(be->be_iv, (const u_int8_t *)src + (len - 8), 8);
+ (void)memcpy(be->be_iv, (const u_int8_t *)src +
+ (len - CGD_BF_BLOCK_SIZE), CGD_BF_BLOCK_SIZE);
}
static void
@@ -587,7 +599,7 @@ cgd_cipher_bf_cbc(void *privdata, struct
struct bf_privdata *bp = privdata;
struct bf_encdata be;
- (void)memcpy(be.be_iv, iv, 8);
+ (void)memcpy(be.be_iv, iv, CGD_BF_BLOCK_SIZE);
be.be_key = &bp->bp_key;
switch (dir) {
case CGD_CIPHER_ENCRYPT:
Index: src/sys/dev/cgd_crypto.h
diff -u src/sys/dev/cgd_crypto.h:1.9 src/sys/dev/cgd_crypto.h:1.10
--- src/sys/dev/cgd_crypto.h:1.9 Sun Dec 11 00:20:49 2016
+++ src/sys/dev/cgd_crypto.h Mon Jan 2 14:28:29 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: cgd_crypto.h,v 1.9 2016/12/11 00:20:49 alnsn Exp $ */
+/* $NetBSD: cgd_crypto.h,v 1.10 2017/01/02 14:28:29 alnsn Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -35,6 +35,9 @@
#ifdef _KERNEL
#define CGD_CIPHER_DECRYPT 1
#define CGD_CIPHER_ENCRYPT 2
+#define CGD_AES_BLOCK_SIZE 16
+#define CGD_3DES_BLOCK_SIZE 8
+#define CGD_BF_BLOCK_SIZE 8
typedef void *(cfunc_init)(size_t, const void *, size_t *);
typedef void (cfunc_destroy)(void *);