Page MenuHomeFreeBSD

D22364.id64311.diff
No OneTemporary

D22364.id64311.diff

Index: sys/opencrypto/cryptosoft.c
===================================================================
--- sys/opencrypto/cryptosoft.c
+++ sys/opencrypto/cryptosoft.c
@@ -430,6 +430,9 @@
if (err)
return err;
+ if (crd->crd_flags & CRD_F_ESN)
+ axf->Update(&ctx, crd->crd_esn, 4);
+
switch (sw->sw_alg) {
case CRYPTO_SHA1:
case CRYPTO_SHA2_224:
@@ -619,6 +622,16 @@
/* Supply MAC with AAD */
aadlen = crda->crd_len;
+ if (crda->crd_flags & CRD_F_ESN) {
+ aadlen += 4;
+ /* SPI */
+ crypto_copydata(crp->crp_flags, buf, crda->crd_skip, 4, blk);
+ iskip = 4;
+ /* ESN */
+ bcopy(crda->crd_esn, blk + 4, 4);
+ oskip = iskip + 4;
+ }
+
for (i = iskip; i < crda->crd_len; i += blksz) {
len = MIN(crda->crd_len - i, blksz - oskip);
crypto_copydata(crp->crp_flags, buf, crda->crd_skip + i, len,
@@ -1070,6 +1083,9 @@
cxf = &comp_algo_deflate;
swd->sw_cxf = cxf;
break;
+ case CRYPTO_ESN:
+ /* Nothing to do here */
+ break;
default:
swcr_freesession(dev, cses);
return EINVAL;
@@ -1372,6 +1388,7 @@
REGISTER(CRYPTO_AES_CCM_16);
REGISTER(CRYPTO_AES_CCM_CBC_MAC);
REGISTER(CRYPTO_POLY1305);
+ REGISTER(CRYPTO_ESN);
#undef REGISTER
return 0;

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 27, 7:18 PM (4 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17821182
Default Alt Text
D22364.id64311.diff (1 KB)

Event Timeline