aboutsummaryrefslogtreecommitdiff
path: root/stand
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2022-01-14 01:19:54 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2022-01-14 01:19:54 +0000
commitc7721958ffa1aa81064b74b884e81efbe11d7fe4 (patch)
tree8cea6d58642e5961b8eb5534b1356eabf8b00394 /stand
parentbe887b3e6cdec1b56db314b7da5501cf25c1a188 (diff)
Diffstat (limited to 'stand')
-rw-r--r--stand/libsa/geli/geliboot.c2
-rw-r--r--stand/libsa/geli/geliboot_crypto.c9
-rw-r--r--stand/libsa/geli/geliboot_internal.h2
3 files changed, 6 insertions, 7 deletions
diff --git a/stand/libsa/geli/geliboot.c b/stand/libsa/geli/geliboot.c
index 56499e96b295..954a3ec34044 100644
--- a/stand/libsa/geli/geliboot.c
+++ b/stand/libsa/geli/geliboot.c
@@ -345,7 +345,7 @@ geli_io(struct geli_dev *gdev, geli_op_t enc, off_t offset, u_char *buf,
g_eli_key_fill(&gdev->sc, &gkey, keyno);
error = geliboot_crypt(gdev->sc.sc_ealgo, enc, pbuf, secsize,
- gkey.gek_key, gdev->sc.sc_ekeylen, iv, sizeof(iv));
+ gkey.gek_key, gdev->sc.sc_ekeylen, iv);
if (error != 0) {
explicit_bzero(&gkey, sizeof(gkey));
diff --git a/stand/libsa/geli/geliboot_crypto.c b/stand/libsa/geli/geliboot_crypto.c
index 766f908d9037..90c9be30cf03 100644
--- a/stand/libsa/geli/geliboot_crypto.c
+++ b/stand/libsa/geli/geliboot_crypto.c
@@ -36,7 +36,7 @@
int
geliboot_crypt(u_int algo, geli_op_t enc, u_char *data, size_t datasize,
- const u_char *key, size_t keysize, u_char *iv, size_t ivlen)
+ const u_char *key, size_t keysize, u_char *iv)
{
keyInstance aeskey;
cipherInstance cipher;
@@ -81,7 +81,7 @@ geliboot_crypt(u_int algo, geli_op_t enc, u_char *data, size_t datasize,
ctxp = &xtsctx;
enc_xform_aes_xts.setkey(ctxp, key, xts_len / 8);
- enc_xform_aes_xts.reinit(ctxp, iv, ivlen);
+ enc_xform_aes_xts.reinit(ctxp, iv, AES_XTS_IV_LEN);
switch (enc) {
case GELI_DECRYPT:
@@ -106,11 +106,10 @@ static int
g_eli_crypto_cipher(u_int algo, geli_op_t enc, u_char *data, size_t datasize,
const u_char *key, size_t keysize)
{
- u_char iv[keysize];
+ u_char iv[G_ELI_IVKEYLEN];
explicit_bzero(iv, sizeof(iv));
- return (geliboot_crypt(algo, enc, data, datasize, key, keysize, iv,
- sizeof(iv)));
+ return (geliboot_crypt(algo, enc, data, datasize, key, keysize, iv));
}
int
diff --git a/stand/libsa/geli/geliboot_internal.h b/stand/libsa/geli/geliboot_internal.h
index 2318690297f8..2af74466179f 100644
--- a/stand/libsa/geli/geliboot_internal.h
+++ b/stand/libsa/geli/geliboot_internal.h
@@ -68,6 +68,6 @@ struct geli_dev {
};
int geliboot_crypt(u_int algo, geli_op_t enc, u_char *data, size_t datasize,
- const u_char *key, size_t keysize, u_char *iv, size_t ivlen);
+ const u_char *key, size_t keysize, u_char *iv);
#endif /* _GELIBOOT_INTERNAL_H_ */