Author: jhb
Date: Wed May 20 22:25:41 2020
New Revision: 361306
URL: https://svnweb.freebsd.org/changeset/base/361306

Log:
  Fix libstand build breakage after r361298.
  
  - Use enc_xform_aes_xts.setkey() directly instead of duplicating the code
    now that it no longer calls malloc().
  - Rather than bringing back all of xform_userland.h, add a conditional
    #include of <stand.h> to xform_enc.h.
  - Update calls to encrypt/decrypt callbacks in enc_xform_aes_xts for
    separate input/output pointers.
  
  Pointy hat to:        jhb

Modified:
  head/stand/libsa/geli/geliboot_crypto.c
  head/sys/opencrypto/xform_enc.h

Modified: head/stand/libsa/geli/geliboot_crypto.c
==============================================================================
--- head/stand/libsa/geli/geliboot_crypto.c     Wed May 20 22:20:53 2020        
(r361305)
+++ head/stand/libsa/geli/geliboot_crypto.c     Wed May 20 22:25:41 2020        
(r361306)
@@ -78,20 +78,20 @@ geliboot_crypt(u_int algo, int enc, u_char *data, size
                xts_len = keysize << 1;
                ctxp = &xtsctx;
 
-               rijndael_set_key(&ctxp->key1, key, xts_len / 2);
-               rijndael_set_key(&ctxp->key2, key + (xts_len / 16), xts_len / 
2);
+               enc_xform_aes_xts.setkey(ctxp, key, xts_len / 8);
+               enc_xform_aes_xts.reinit(ctxp, iv);
 
-               enc_xform_aes_xts.reinit((caddr_t)ctxp, iv);
-
                switch (enc) {
                case 0: /* decrypt */
                        for (i = 0; i < datasize; i += AES_XTS_BLOCKSIZE) {
-                               enc_xform_aes_xts.decrypt((caddr_t)ctxp, data + 
i);
+                               enc_xform_aes_xts.decrypt(ctxp, data + i,
+                                   data + i);
                        }
                        break;
                case 1: /* encrypt */
                        for (i = 0; i < datasize; i += AES_XTS_BLOCKSIZE) {
-                               enc_xform_aes_xts.encrypt((caddr_t)ctxp, data + 
i);
+                               enc_xform_aes_xts.encrypt(ctxp, data + i,
+                                   data + 1);
                        }
                        break;
                }

Modified: head/sys/opencrypto/xform_enc.h
==============================================================================
--- head/sys/opencrypto/xform_enc.h     Wed May 20 22:20:53 2020        
(r361305)
+++ head/sys/opencrypto/xform_enc.h     Wed May 20 22:25:41 2020        
(r361306)
@@ -36,6 +36,9 @@
 #include <crypto/rijndael/rijndael.h>
 #include <crypto/camellia/camellia.h>
 #include <opencrypto/cryptodev.h>
+#ifdef _STANDALONE
+#include <stand.h>
+#endif
 
 #define AESICM_BLOCKSIZE       AES_BLOCK_LEN
 #define        AES_XTS_BLOCKSIZE       16
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to