Module Name: src
Committed By: drochner
Date: Tue May 24 18:59:23 UTC 2011
Modified Files:
src/sys/arch/x86/x86: via_padlock.c
src/sys/opencrypto: cryptosoft.c cryptosoft_xform.c xform.c xform.h
Log Message:
move the "context size" struct member (which is a pure software
implementation thing) from the abstract xform descriptor to
the cryptosoft implementation part -- for sanity, and now clients
of opencrypto don't depend on headers of cipher implementations anymore
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/sys/arch/x86/x86/via_padlock.c
cvs rdiff -u -r1.34 -r1.35 src/sys/opencrypto/cryptosoft.c
cvs rdiff -u -r1.20 -r1.21 src/sys/opencrypto/cryptosoft_xform.c
cvs rdiff -u -r1.25 -r1.26 src/sys/opencrypto/xform.c
cvs rdiff -u -r1.16 -r1.17 src/sys/opencrypto/xform.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/arch/x86/x86/via_padlock.c
diff -u src/sys/arch/x86/x86/via_padlock.c:1.14 src/sys/arch/x86/x86/via_padlock.c:1.15
--- src/sys/arch/x86/x86/via_padlock.c:1.14 Sat Feb 19 13:52:28 2011
+++ src/sys/arch/x86/x86/via_padlock.c Tue May 24 18:59:21 2011
@@ -1,5 +1,5 @@
/* $OpenBSD: via.c,v 1.8 2006/11/17 07:47:56 tom Exp $ */
-/* $NetBSD: via_padlock.c,v 1.14 2011/02/19 13:52:28 jmcneill Exp $ */
+/* $NetBSD: via_padlock.c,v 1.15 2011/05/24 18:59:21 drochner Exp $ */
/*-
* Copyright (c) 2003 Jason Wright
@@ -20,7 +20,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: via_padlock.c,v 1.14 2011/02/19 13:52:28 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: via_padlock.c,v 1.15 2011/05/24 18:59:21 drochner Exp $");
#ifdef _KERNEL_OPT
# include "rnd.h"
@@ -313,14 +313,14 @@
}
ses->swd = swd;
- swd->sw_ictx = malloc(axf->auth_hash->ctxsize,
+ swd->sw_ictx = malloc(axf->ctxsize,
M_CRYPTO_DATA, M_NOWAIT);
if (swd->sw_ictx == NULL) {
via_padlock_crypto_freesession(sc, sesn);
return (ENOMEM);
}
- swd->sw_octx = malloc(axf->auth_hash->ctxsize,
+ swd->sw_octx = malloc(axf->ctxsize,
M_CRYPTO_DATA, M_NOWAIT);
if (swd->sw_octx == NULL) {
via_padlock_crypto_freesession(sc, sesn);
@@ -365,7 +365,7 @@
{
struct via_padlock_softc *sc = arg;
struct swcr_data *swd;
- const struct auth_hash *axf;
+ const struct swcr_auth_hash *axf;
int sesn;
uint32_t sid = ((uint32_t)tid) & 0xffffffff;
@@ -379,7 +379,7 @@
if (sc->sc_sessions[sesn].swd) {
swd = sc->sc_sessions[sesn].swd;
- axf = swd->sw_axf->auth_hash;
+ axf = swd->sw_axf;
if (swd->sw_ictx) {
memset(swd->sw_ictx, 0, axf->ctxsize);
Index: src/sys/opencrypto/cryptosoft.c
diff -u src/sys/opencrypto/cryptosoft.c:1.34 src/sys/opencrypto/cryptosoft.c:1.35
--- src/sys/opencrypto/cryptosoft.c:1.34 Tue May 24 18:52:51 2011
+++ src/sys/opencrypto/cryptosoft.c Tue May 24 18:59:22 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: cryptosoft.c,v 1.34 2011/05/24 18:52:51 drochner Exp $ */
+/* $NetBSD: cryptosoft.c,v 1.35 2011/05/24 18:59:22 drochner Exp $ */
/* $FreeBSD: src/sys/opencrypto/cryptosoft.c,v 1.2.2.1 2002/11/21 23:34:23 sam Exp $ */
/* $OpenBSD: cryptosoft.c,v 1.35 2002/04/26 08:43:50 deraadt Exp $ */
@@ -24,7 +24,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cryptosoft.c,v 1.34 2011/05/24 18:52:51 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cryptosoft.c,v 1.35 2011/05/24 18:59:22 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -479,7 +479,7 @@
axf = sw->sw_axf;
- memcpy(&ctx, sw->sw_ictx, axf->auth_hash->ctxsize);
+ memcpy(&ctx, sw->sw_ictx, axf->ctxsize);
switch (outtype) {
case CRYPTO_BUF_CONTIG:
@@ -519,7 +519,7 @@
return EINVAL;
axf->Final(aalg, &ctx);
- memcpy(&ctx, sw->sw_octx, axf->auth_hash->ctxsize);
+ memcpy(&ctx, sw->sw_octx, axf->ctxsize);
axf->Update(&ctx, aalg, axf->auth_hash->hashsize);
axf->Final(aalg, &ctx);
break;
@@ -752,14 +752,14 @@
axf = &swcr_auth_hash_hmac_ripemd_160_96;
goto authcommon; /* leave this for safety */
authcommon:
- (*swd)->sw_ictx = malloc(axf->auth_hash->ctxsize,
+ (*swd)->sw_ictx = malloc(axf->ctxsize,
M_CRYPTO_DATA, M_NOWAIT);
if ((*swd)->sw_ictx == NULL) {
swcr_freesession(NULL, i);
return ENOBUFS;
}
- (*swd)->sw_octx = malloc(axf->auth_hash->ctxsize,
+ (*swd)->sw_octx = malloc(axf->ctxsize,
M_CRYPTO_DATA, M_NOWAIT);
if ((*swd)->sw_octx == NULL) {
swcr_freesession(NULL, i);
@@ -796,7 +796,7 @@
case CRYPTO_SHA1_KPDK:
axf = &swcr_auth_hash_key_sha1;
auth2common:
- (*swd)->sw_ictx = malloc(axf->auth_hash->ctxsize,
+ (*swd)->sw_ictx = malloc(axf->ctxsize,
M_CRYPTO_DATA, M_NOWAIT);
if ((*swd)->sw_ictx == NULL) {
swcr_freesession(NULL, i);
@@ -827,7 +827,7 @@
case CRYPTO_SHA1:
axf = &swcr_auth_hash_sha1;
auth3common:
- (*swd)->sw_ictx = malloc(axf->auth_hash->ctxsize,
+ (*swd)->sw_ictx = malloc(axf->ctxsize,
M_CRYPTO_DATA, M_NOWAIT);
if ((*swd)->sw_ictx == NULL) {
swcr_freesession(NULL, i);
@@ -916,11 +916,11 @@
axf = swd->sw_axf;
if (swd->sw_ictx) {
- memset(swd->sw_ictx, 0, axf->auth_hash->ctxsize);
+ memset(swd->sw_ictx, 0, axf->ctxsize);
free(swd->sw_ictx, M_CRYPTO_DATA);
}
if (swd->sw_octx) {
- memset(swd->sw_octx, 0, axf->auth_hash->ctxsize);
+ memset(swd->sw_octx, 0, axf->ctxsize);
free(swd->sw_octx, M_CRYPTO_DATA);
}
break;
@@ -930,7 +930,7 @@
axf = swd->sw_axf;
if (swd->sw_ictx) {
- memset(swd->sw_ictx, 0, axf->auth_hash->ctxsize);
+ memset(swd->sw_ictx, 0, axf->ctxsize);
free(swd->sw_ictx, M_CRYPTO_DATA);
}
if (swd->sw_octx) {
Index: src/sys/opencrypto/cryptosoft_xform.c
diff -u src/sys/opencrypto/cryptosoft_xform.c:1.20 src/sys/opencrypto/cryptosoft_xform.c:1.21
--- src/sys/opencrypto/cryptosoft_xform.c:1.20 Tue May 24 18:52:51 2011
+++ src/sys/opencrypto/cryptosoft_xform.c Tue May 24 18:59:22 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: cryptosoft_xform.c,v 1.20 2011/05/24 18:52:51 drochner Exp $ */
+/* $NetBSD: cryptosoft_xform.c,v 1.21 2011/05/24 18:59:22 drochner Exp $ */
/* $FreeBSD: src/sys/opencrypto/xform.c,v 1.1.2.1 2002/11/21 23:34:23 sam Exp $ */
/* $OpenBSD: xform.c,v 1.19 2002/08/16 22:47:25 dhartmei Exp $ */
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: cryptosoft_xform.c,v 1.20 2011/05/24 18:52:51 drochner Exp $");
+__KERNEL_RCSID(1, "$NetBSD: cryptosoft_xform.c,v 1.21 2011/05/24 18:59:22 drochner Exp $");
#include <crypto/blowfish/blowfish.h>
#include <crypto/cast128/cast128.h>
@@ -54,9 +54,11 @@
#include <sys/md5.h>
#include <sys/rmd160.h>
#include <sys/sha1.h>
+#include <sys/sha2.h>
struct swcr_auth_hash {
const struct auth_hash *auth_hash;
+ int ctxsize;
void (*Init)(void *);
int (*Update)(void *, const uint8_t *, uint16_t);
void (*Final)(uint8_t *, void *);
@@ -222,80 +224,80 @@
/* Authentication instances */
static const struct swcr_auth_hash swcr_auth_hash_null = {
- &auth_hash_null,
+ &auth_hash_null, sizeof(int), /* NB: context isn't used */
null_init, null_update, null_final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_md5 = {
- &auth_hash_hmac_md5,
+ &auth_hash_hmac_md5, sizeof(MD5_CTX),
(void (*) (void *)) MD5Init, MD5Update_int,
(void (*) (u_int8_t *, void *)) MD5Final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_sha1 = {
- &auth_hash_hmac_sha1,
+ &auth_hash_hmac_sha1, sizeof(SHA1_CTX),
SHA1Init_int, SHA1Update_int, SHA1Final_int
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_ripemd_160 = {
- &auth_hash_hmac_ripemd_160,
+ &auth_hash_hmac_ripemd_160, sizeof(RMD160_CTX),
(void (*)(void *)) RMD160Init, RMD160Update_int,
(void (*)(u_int8_t *, void *)) RMD160Final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_md5_96 = {
- &auth_hash_hmac_md5_96,
+ &auth_hash_hmac_md5_96, sizeof(MD5_CTX),
(void (*) (void *)) MD5Init, MD5Update_int,
(void (*) (u_int8_t *, void *)) MD5Final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_sha1_96 = {
- &auth_hash_hmac_sha1_96,
+ &auth_hash_hmac_sha1_96, sizeof(SHA1_CTX),
SHA1Init_int, SHA1Update_int, SHA1Final_int
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_ripemd_160_96 = {
- &auth_hash_hmac_ripemd_160_96,
+ &auth_hash_hmac_ripemd_160_96, sizeof(RMD160_CTX),
(void (*)(void *)) RMD160Init, RMD160Update_int,
(void (*)(u_int8_t *, void *)) RMD160Final
};
static const struct swcr_auth_hash swcr_auth_hash_key_md5 = {
- &auth_hash_key_md5,
+ &auth_hash_key_md5, sizeof(MD5_CTX),
(void (*)(void *)) MD5Init, MD5Update_int,
(void (*)(u_int8_t *, void *)) MD5Final
};
static const struct swcr_auth_hash swcr_auth_hash_key_sha1 = {
- &auth_hash_key_sha1,
+ &auth_hash_key_sha1, sizeof(SHA1_CTX),
SHA1Init_int, SHA1Update_int, SHA1Final_int
};
static const struct swcr_auth_hash swcr_auth_hash_md5 = {
- &auth_hash_md5,
+ &auth_hash_md5, sizeof(MD5_CTX),
(void (*) (void *)) MD5Init, MD5Update_int,
(void (*) (u_int8_t *, void *)) MD5Final
};
static const struct swcr_auth_hash swcr_auth_hash_sha1 = {
- &auth_hash_sha1,
+ &auth_hash_sha1, sizeof(SHA1_CTX),
(void (*)(void *)) SHA1Init, SHA1Update_int,
(void (*)(u_int8_t *, void *)) SHA1Final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_sha2_256 = {
- &auth_hash_hmac_sha2_256,
+ &auth_hash_hmac_sha2_256, sizeof(SHA256_CTX),
(void (*)(void *)) SHA256_Init, SHA256Update_int,
(void (*)(u_int8_t *, void *)) SHA256_Final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_sha2_384 = {
- &auth_hash_hmac_sha2_384,
+ &auth_hash_hmac_sha2_384, sizeof(SHA384_CTX),
(void (*)(void *)) SHA384_Init, SHA384Update_int,
(void (*)(u_int8_t *, void *)) SHA384_Final
};
static const struct swcr_auth_hash swcr_auth_hash_hmac_sha2_512 = {
- &auth_hash_hmac_sha2_384,
+ &auth_hash_hmac_sha2_512, sizeof(SHA512_CTX),
(void (*)(void *)) SHA512_Init, SHA512Update_int,
(void (*)(u_int8_t *, void *)) SHA512_Final
};
Index: src/sys/opencrypto/xform.c
diff -u src/sys/opencrypto/xform.c:1.25 src/sys/opencrypto/xform.c:1.26
--- src/sys/opencrypto/xform.c:1.25 Mon May 23 13:51:10 2011
+++ src/sys/opencrypto/xform.c Tue May 24 18:59:23 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: xform.c,v 1.25 2011/05/23 13:51:10 drochner Exp $ */
+/* $NetBSD: xform.c,v 1.26 2011/05/24 18:59:23 drochner Exp $ */
/* $FreeBSD: src/sys/opencrypto/xform.c,v 1.1.2.1 2002/11/21 23:34:23 sam Exp $ */
/* $OpenBSD: xform.c,v 1.19 2002/08/16 22:47:25 dhartmei Exp $ */
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xform.c,v 1.25 2011/05/23 13:51:10 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xform.c,v 1.26 2011/05/24 18:59:23 drochner Exp $");
#include <sys/param.h>
#include <sys/malloc.h>
@@ -143,72 +143,72 @@
/* Authentication instances */
const struct auth_hash auth_hash_null = {
CRYPTO_NULL_HMAC, "NULL-HMAC",
- 0, 0, 12, 64, sizeof(int) /* NB: context isn't used */
+ 0, 0, 12, 64
};
const struct auth_hash auth_hash_hmac_md5 = {
CRYPTO_MD5_HMAC, "HMAC-MD5",
- 16, 16, 16, 64, sizeof(MD5_CTX)
+ 16, 16, 16, 64
};
const struct auth_hash auth_hash_hmac_sha1 = {
CRYPTO_SHA1_HMAC, "HMAC-SHA1",
- 20, 20, 20, 64, sizeof(SHA1_CTX)
+ 20, 20, 20, 64
};
const struct auth_hash auth_hash_hmac_ripemd_160 = {
CRYPTO_RIPEMD160_HMAC, "HMAC-RIPEMD-160",
- 20, 20, 20, 64, sizeof(RMD160_CTX)
+ 20, 20, 20, 64
};
const struct auth_hash auth_hash_hmac_md5_96 = {
CRYPTO_MD5_HMAC_96, "HMAC-MD5-96",
- 16, 16, 12, 64, sizeof(MD5_CTX)
+ 16, 16, 12, 64
};
const struct auth_hash auth_hash_hmac_sha1_96 = {
CRYPTO_SHA1_HMAC_96, "HMAC-SHA1-96",
- 20, 20, 12, 64, sizeof(SHA1_CTX)
+ 20, 20, 12, 64
};
const struct auth_hash auth_hash_hmac_ripemd_160_96 = {
CRYPTO_RIPEMD160_HMAC_96, "HMAC-RIPEMD-160",
- 20, 20, 12, 64, sizeof(RMD160_CTX)
+ 20, 20, 12, 64
};
const struct auth_hash auth_hash_key_md5 = {
CRYPTO_MD5_KPDK, "Keyed MD5",
- 0, 16, 16, 0, sizeof(MD5_CTX)
+ 0, 16, 16, 0
};
const struct auth_hash auth_hash_key_sha1 = {
CRYPTO_SHA1_KPDK, "Keyed SHA1",
- 0, 20, 20, 0, sizeof(SHA1_CTX)
+ 0, 20, 20, 0
};
const struct auth_hash auth_hash_md5 = {
CRYPTO_MD5, "MD5",
- 0, 16, 16, 0, sizeof(MD5_CTX)
+ 0, 16, 16, 0
};
const struct auth_hash auth_hash_sha1 = {
CRYPTO_SHA1, "SHA1",
- 0, 20, 20, 0, sizeof(SHA1_CTX)
+ 0, 20, 20, 0
};
const struct auth_hash auth_hash_hmac_sha2_256 = {
CRYPTO_SHA2_256_HMAC, "HMAC-SHA2",
- 32, 32, 16, 64, sizeof(SHA256_CTX)
+ 32, 32, 16, 64
};
const struct auth_hash auth_hash_hmac_sha2_384 = {
CRYPTO_SHA2_384_HMAC, "HMAC-SHA2-384",
- 48, 48, 24, 128, sizeof(SHA384_CTX)
+ 48, 48, 24, 128
};
const struct auth_hash auth_hash_hmac_sha2_512 = {
CRYPTO_SHA2_512_HMAC, "HMAC-SHA2-512",
- 64, 64, 32, 128, sizeof(SHA512_CTX)
+ 64, 64, 32, 128
};
/* Compression instance */
Index: src/sys/opencrypto/xform.h
diff -u src/sys/opencrypto/xform.h:1.16 src/sys/opencrypto/xform.h:1.17
--- src/sys/opencrypto/xform.h:1.16 Mon May 23 13:51:10 2011
+++ src/sys/opencrypto/xform.h Tue May 24 18:59:23 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: xform.h,v 1.16 2011/05/23 13:51:10 drochner Exp $ */
+/* $NetBSD: xform.h,v 1.17 2011/05/24 18:59:23 drochner Exp $ */
/* $FreeBSD: src/sys/opencrypto/xform.h,v 1.1.2.1 2002/11/21 23:34:23 sam Exp $ */
/* $OpenBSD: xform.h,v 1.10 2002/04/22 23:10:09 deraadt Exp $ */
@@ -26,11 +26,6 @@
#ifndef _CRYPTO_XFORM_H_
#define _CRYPTO_XFORM_H_
-#include <sys/md5.h>
-#include <sys/sha1.h>
-#include <sys/sha2.h>
-#include <sys/rmd160.h>
-
/* Declarations */
struct auth_hash {
int type;
@@ -39,7 +34,6 @@
u_int16_t hashsize;
u_int16_t authsize;
u_int16_t blocksize;
- u_int16_t ctxsize;
};
/* Provide array-limit for clients (e.g., netipsec) */