Fix various warnings with higher WARNS.
- Rename global 'crid' to 'requested_crid' to avoid shadowing. - Remove some unused function arguments. - Use __DECONST().
This commit is contained in:
parent
9f6f4168b4
commit
98608971de
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=366687
@ -144,7 +144,7 @@ struct ocf_session {
|
||||
int crid;
|
||||
};
|
||||
|
||||
const struct alg {
|
||||
static const struct alg {
|
||||
const char *name;
|
||||
int cipher;
|
||||
int mac;
|
||||
@ -215,7 +215,7 @@ const struct alg {
|
||||
};
|
||||
|
||||
static bool verbose;
|
||||
static int crid;
|
||||
static int requested_crid;
|
||||
static size_t aad_sizes[48], sizes[128];
|
||||
static u_int naad_sizes, nsizes;
|
||||
|
||||
@ -340,7 +340,7 @@ crlookup(const char *devname)
|
||||
return (find.crid);
|
||||
}
|
||||
|
||||
const char *
|
||||
static const char *
|
||||
crfind(int crid)
|
||||
{
|
||||
static struct crypt_find_op find;
|
||||
@ -427,7 +427,7 @@ static void
|
||||
ocf_init_sop(struct session2_op *sop)
|
||||
{
|
||||
memset(sop, 0, sizeof(*sop));
|
||||
sop->crid = crid;
|
||||
sop->crid = requested_crid;
|
||||
}
|
||||
|
||||
static bool
|
||||
@ -439,7 +439,7 @@ ocf_init_session(struct session2_op *sop, const char *type, const char *name,
|
||||
fd = crget();
|
||||
if (ioctl(fd, CIOCGSESSION2, sop) < 0) {
|
||||
warn("cryptodev %s %s not supported for device %s",
|
||||
type, name, crfind(crid));
|
||||
type, name, crfind(sop->crid));
|
||||
close(fd);
|
||||
ses->fd = -1;
|
||||
return (false);
|
||||
@ -483,7 +483,6 @@ ocf_hash(const struct alg *alg, const char *buffer, size_t size, char *digest,
|
||||
struct ocf_session ses;
|
||||
struct session2_op sop;
|
||||
struct crypt_op cop;
|
||||
int error;
|
||||
|
||||
ocf_init_sop(&sop);
|
||||
sop.mac = alg->mac;
|
||||
@ -493,12 +492,12 @@ ocf_hash(const struct alg *alg, const char *buffer, size_t size, char *digest,
|
||||
ocf_init_cop(&ses, &cop);
|
||||
cop.op = 0;
|
||||
cop.len = size;
|
||||
cop.src = (char *)buffer;
|
||||
cop.src = __DECONST(char *, buffer);
|
||||
cop.mac = digest;
|
||||
|
||||
if (ioctl(ses.fd, CIOCCRYPT, &cop) < 0) {
|
||||
warn("cryptodev %s (%zu) HASH failed for device %s", alg->name,
|
||||
size, crfind(crid));
|
||||
size, crfind(ses.crid));
|
||||
ocf_destroy_session(&ses);
|
||||
return (false);
|
||||
}
|
||||
@ -555,7 +554,7 @@ run_hash_test(const struct alg *alg, size_t size)
|
||||
memset(test_digest, 0x3c, sizeof(test_digest));
|
||||
|
||||
md = alg->evp_md();
|
||||
assert(EVP_MD_size(md) <= sizeof(control_digest));
|
||||
assert((size_t)EVP_MD_size(md) <= sizeof(control_digest));
|
||||
|
||||
buffer = alloc_buffer(size);
|
||||
|
||||
@ -597,7 +596,7 @@ ocf_hmac(const struct alg *alg, const char *buffer, size_t size,
|
||||
|
||||
ocf_init_sop(&sop);
|
||||
sop.mackeylen = key_len;
|
||||
sop.mackey = (char *)key;
|
||||
sop.mackey = __DECONST(char *, key);
|
||||
sop.mac = alg->mac;
|
||||
if (!ocf_init_session(&sop, "HMAC", alg->name, &ses))
|
||||
return (false);
|
||||
@ -605,12 +604,12 @@ ocf_hmac(const struct alg *alg, const char *buffer, size_t size,
|
||||
ocf_init_cop(&ses, &cop);
|
||||
cop.op = 0;
|
||||
cop.len = size;
|
||||
cop.src = (char *)buffer;
|
||||
cop.src = __DECONST(char *, buffer);
|
||||
cop.mac = digest;
|
||||
|
||||
if (ioctl(ses.fd, CIOCCRYPT, &cop) < 0) {
|
||||
warn("cryptodev %s (%zu) HMAC failed for device %s", alg->name,
|
||||
size, crfind(crid));
|
||||
size, crfind(ses.crid));
|
||||
ocf_destroy_session(&ses);
|
||||
return (false);
|
||||
}
|
||||
@ -634,7 +633,7 @@ run_hmac_test(const struct alg *alg, size_t size)
|
||||
|
||||
md = alg->evp_md();
|
||||
key_len = EVP_MD_size(md);
|
||||
assert(EVP_MD_size(md) <= sizeof(control_digest));
|
||||
assert((size_t)EVP_MD_size(md) <= sizeof(control_digest));
|
||||
|
||||
key = alloc_buffer(key_len);
|
||||
buffer = alloc_buffer(size);
|
||||
@ -696,7 +695,7 @@ openssl_cipher(const struct alg *alg, const EVP_CIPHER *cipher, const char *key,
|
||||
errx(1, "OpenSSL %s (%zu) cipher final failed: %s", alg->name,
|
||||
size, ERR_error_string(ERR_get_error(), NULL));
|
||||
total += outl;
|
||||
if (total != size)
|
||||
if ((size_t)total != size)
|
||||
errx(1, "OpenSSL %s (%zu) cipher size mismatch: %d", alg->name,
|
||||
size, total);
|
||||
EVP_CIPHER_CTX_free(ctx);
|
||||
@ -710,7 +709,7 @@ ocf_init_cipher_session(const struct alg *alg, const char *key, size_t key_len,
|
||||
|
||||
ocf_init_sop(&sop);
|
||||
sop.keylen = key_len;
|
||||
sop.key = (char *)key;
|
||||
sop.key = __DECONST(char *, key);
|
||||
sop.cipher = alg->cipher;
|
||||
return (ocf_init_session(&sop, "cipher", alg->name, ses));
|
||||
}
|
||||
@ -724,13 +723,13 @@ ocf_cipher(const struct ocf_session *ses, const struct alg *alg, const char *iv,
|
||||
ocf_init_cop(ses, &cop);
|
||||
cop.op = op;
|
||||
cop.len = size;
|
||||
cop.src = (char *)input;
|
||||
cop.src = __DECONST(char *, input);
|
||||
cop.dst = output;
|
||||
cop.iv = (char *)iv;
|
||||
cop.iv = __DECONST(char *, iv);
|
||||
|
||||
if (ioctl(ses->fd, CIOCCRYPT, &cop) < 0) {
|
||||
warn("cryptodev %s (%zu) cipher failed for device %s",
|
||||
alg->name, size, crfind(crid));
|
||||
alg->name, size, crfind(ses->crid));
|
||||
return (false);
|
||||
}
|
||||
|
||||
@ -842,18 +841,18 @@ ocf_init_eta_session(const struct alg *alg, const char *cipher_key,
|
||||
|
||||
ocf_init_sop(&sop);
|
||||
sop.keylen = cipher_key_len;
|
||||
sop.key = (char *)cipher_key;
|
||||
sop.key = __DECONST(char *, cipher_key);
|
||||
sop.cipher = alg->cipher;
|
||||
sop.mackeylen = auth_key_len;
|
||||
sop.mackey = (char *)auth_key;
|
||||
sop.mackey = __DECONST(char *, auth_key);
|
||||
sop.mac = alg->mac;
|
||||
return (ocf_init_session(&sop, "ETA", alg->name, ses));
|
||||
}
|
||||
|
||||
static int
|
||||
ocf_eta(const struct ocf_session *ses, const struct alg *alg, const char *iv,
|
||||
size_t iv_len, const char *aad, size_t aad_len, const char *input,
|
||||
char *output, size_t size, char *digest, int op)
|
||||
ocf_eta(const struct ocf_session *ses, const char *iv, size_t iv_len,
|
||||
const char *aad, size_t aad_len, const char *input, char *output,
|
||||
size_t size, char *digest, int op)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@ -865,11 +864,11 @@ ocf_eta(const struct ocf_session *ses, const struct alg *alg, const char *iv,
|
||||
caead.len = size;
|
||||
caead.aadlen = aad_len;
|
||||
caead.ivlen = iv_len;
|
||||
caead.src = (char *)input;
|
||||
caead.src = __DECONST(char *, input);
|
||||
caead.dst = output;
|
||||
caead.aad = (char *)aad;
|
||||
caead.aad = __DECONST(char *, aad);
|
||||
caead.tag = digest;
|
||||
caead.iv = (char *)iv;
|
||||
caead.iv = __DECONST(char *, iv);
|
||||
|
||||
ret = ioctl(ses->fd, CIOCCRYPTAEAD, &caead);
|
||||
} else {
|
||||
@ -878,10 +877,10 @@ ocf_eta(const struct ocf_session *ses, const struct alg *alg, const char *iv,
|
||||
ocf_init_cop(ses, &cop);
|
||||
cop.op = op;
|
||||
cop.len = size;
|
||||
cop.src = (char *)input;
|
||||
cop.src = __DECONST(char *, input);
|
||||
cop.dst = output;
|
||||
cop.mac = digest;
|
||||
cop.iv = (char *)iv;
|
||||
cop.iv = __DECONST(char *, iv);
|
||||
|
||||
ret = ioctl(ses->fd, CIOCCRYPT, &cop);
|
||||
}
|
||||
@ -897,7 +896,7 @@ run_eta_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
struct ocf_session ses;
|
||||
const EVP_CIPHER *cipher;
|
||||
const EVP_MD *md;
|
||||
char *aad, *buffer, *cleartext, *ciphertext;
|
||||
char *buffer, *cleartext, *ciphertext;
|
||||
char *iv, *auth_key, *cipher_key;
|
||||
u_int iv_len, auth_key_len, cipher_key_len, digest_len;
|
||||
int error;
|
||||
@ -958,9 +957,9 @@ run_eta_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
goto out;
|
||||
|
||||
/* OCF encrypt + HMAC. */
|
||||
error = ocf_eta(&ses, alg, iv, iv_len,
|
||||
aad_len != 0 ? cleartext : NULL, aad_len, cleartext + aad_len,
|
||||
buffer + aad_len, size, test_digest, COP_ENCRYPT);
|
||||
error = ocf_eta(&ses, iv, iv_len, aad_len != 0 ? cleartext : NULL,
|
||||
aad_len, cleartext + aad_len, buffer + aad_len, size, test_digest,
|
||||
COP_ENCRYPT);
|
||||
if (error != 0) {
|
||||
warnc(error, "cryptodev %s (%zu, %zu) ETA failed for device %s",
|
||||
alg->name, aad_len, size, crfind(ses.crid));
|
||||
@ -990,9 +989,9 @@ run_eta_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
}
|
||||
|
||||
/* OCF HMAC + decrypt. */
|
||||
error = ocf_eta(&ses, alg, iv, iv_len,
|
||||
aad_len != 0 ? ciphertext : NULL, aad_len, ciphertext + aad_len,
|
||||
buffer + aad_len, size, test_digest, COP_DECRYPT);
|
||||
error = ocf_eta(&ses, iv, iv_len, aad_len != 0 ? ciphertext : NULL,
|
||||
aad_len, ciphertext + aad_len, buffer + aad_len, size, test_digest,
|
||||
COP_DECRYPT);
|
||||
if (error != 0) {
|
||||
warnc(error, "cryptodev %s (%zu, %zu) ETA failed for device %s",
|
||||
alg->name, aad_len, size, crfind(ses.crid));
|
||||
@ -1010,9 +1009,9 @@ run_eta_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
|
||||
/* Verify OCF HMAC + decrypt fails with busted MAC. */
|
||||
test_digest[0] ^= 0x1;
|
||||
error = ocf_eta(&ses, alg, iv, iv_len,
|
||||
aad_len != 0 ? ciphertext : NULL, aad_len, ciphertext + aad_len,
|
||||
buffer + aad_len, size, test_digest, COP_DECRYPT);
|
||||
error = ocf_eta(&ses, iv, iv_len, aad_len != 0 ? ciphertext : NULL,
|
||||
aad_len, ciphertext + aad_len, buffer + aad_len, size, test_digest,
|
||||
COP_DECRYPT);
|
||||
if (error != EBADMSG) {
|
||||
if (error != 0)
|
||||
warnc(error,
|
||||
@ -1079,7 +1078,7 @@ ocf_gmac(const struct alg *alg, const char *input, size_t size, const char *key,
|
||||
|
||||
ocf_init_sop(&sop);
|
||||
sop.mackeylen = key_len;
|
||||
sop.mackey = (char *)key;
|
||||
sop.mackey = __DECONST(char *, key);
|
||||
sop.mac = alg->mac;
|
||||
if (!ocf_init_session(&sop, "GMAC", alg->name, &ses))
|
||||
return (false);
|
||||
@ -1087,13 +1086,13 @@ ocf_gmac(const struct alg *alg, const char *input, size_t size, const char *key,
|
||||
ocf_init_cop(&ses, &cop);
|
||||
cop.op = 0;
|
||||
cop.len = size;
|
||||
cop.src = (char *)input;
|
||||
cop.src = __DECONST(char *, input);
|
||||
cop.mac = tag;
|
||||
cop.iv = iv;
|
||||
|
||||
if (ioctl(ses.fd, CIOCCRYPT, &cop) < 0) {
|
||||
warn("cryptodev %s (%zu) failed for device %s", alg->name,
|
||||
size, crfind(crid));
|
||||
size, crfind(ses.crid));
|
||||
ocf_destroy_session(&ses);
|
||||
return (false);
|
||||
}
|
||||
@ -1108,7 +1107,7 @@ run_gmac_test(const struct alg *alg, size_t size)
|
||||
{
|
||||
const EVP_CIPHER *cipher;
|
||||
char *iv, *key, *buffer;
|
||||
u_int iv_len, key_len, digest_len;
|
||||
u_int iv_len, key_len;
|
||||
int crid;
|
||||
char control_tag[AES_GMAC_HASH_LEN], test_tag[AES_GMAC_HASH_LEN];
|
||||
|
||||
@ -1181,7 +1180,7 @@ openssl_gcm_encrypt(const struct alg *alg, const EVP_CIPHER *cipher,
|
||||
errx(1, "OpenSSL %s (%zu) encrypt final failed: %s", alg->name,
|
||||
size, ERR_error_string(ERR_get_error(), NULL));
|
||||
total += outl;
|
||||
if (total != size)
|
||||
if ((size_t)total != size)
|
||||
errx(1, "OpenSSL %s (%zu) encrypt size mismatch: %d", alg->name,
|
||||
size, total);
|
||||
if (EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_GET_TAG, AES_GMAC_HASH_LEN,
|
||||
@ -1281,7 +1280,7 @@ openssl_ccm_encrypt(const struct alg *alg, const EVP_CIPHER *cipher,
|
||||
errx(1, "OpenSSL %s (%zu) encrypt final failed: %s", alg->name,
|
||||
size, ERR_error_string(ERR_get_error(), NULL));
|
||||
total += outl;
|
||||
if (total != size)
|
||||
if ((size_t)total != size)
|
||||
errx(1, "OpenSSL %s (%zu) encrypt size mismatch: %d", alg->name,
|
||||
size, total);
|
||||
if (EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_GET_TAG, AES_CBC_MAC_HASH_LEN,
|
||||
@ -1299,15 +1298,15 @@ ocf_init_aead_session(const struct alg *alg, const char *key, size_t key_len,
|
||||
|
||||
ocf_init_sop(&sop);
|
||||
sop.keylen = key_len;
|
||||
sop.key = (char *)key;
|
||||
sop.key = __DECONST(char *, key);
|
||||
sop.cipher = alg->cipher;
|
||||
return (ocf_init_session(&sop, "AEAD", alg->name, ses));
|
||||
}
|
||||
|
||||
static int
|
||||
ocf_aead(const struct ocf_session *ses, const struct alg *alg, const char *iv,
|
||||
size_t iv_len, const char *aad, size_t aad_len, const char *input,
|
||||
char *output, size_t size, char *tag, int op)
|
||||
ocf_aead(const struct ocf_session *ses, const char *iv, size_t iv_len,
|
||||
const char *aad, size_t aad_len, const char *input, char *output,
|
||||
size_t size, char *tag, int op)
|
||||
{
|
||||
struct crypt_aead caead;
|
||||
|
||||
@ -1316,11 +1315,11 @@ ocf_aead(const struct ocf_session *ses, const struct alg *alg, const char *iv,
|
||||
caead.len = size;
|
||||
caead.aadlen = aad_len;
|
||||
caead.ivlen = iv_len;
|
||||
caead.src = (char *)input;
|
||||
caead.src = __DECONST(char *, input);
|
||||
caead.dst = output;
|
||||
caead.aad = (char *)aad;
|
||||
caead.aad = __DECONST(char *, aad);
|
||||
caead.tag = tag;
|
||||
caead.iv = (char *)iv;
|
||||
caead.iv = __DECONST(char *, iv);
|
||||
|
||||
if (ioctl(ses->fd, CIOCCRYPTAEAD, &caead) < 0)
|
||||
return (errno);
|
||||
@ -1391,7 +1390,7 @@ run_aead_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
goto out;
|
||||
|
||||
/* OCF encrypt */
|
||||
error = ocf_aead(&ses, alg, iv, iv_len, aad, aad_len, cleartext, buffer,
|
||||
error = ocf_aead(&ses, iv, iv_len, aad, aad_len, cleartext, buffer,
|
||||
size, test_tag, COP_ENCRYPT);
|
||||
if (error != 0) {
|
||||
warnc(error, "cryptodev %s (%zu, %zu) failed for device %s",
|
||||
@ -1403,7 +1402,7 @@ run_aead_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
aad_len, size);
|
||||
printf("control:\n");
|
||||
hexdump(ciphertext, size, NULL, 0);
|
||||
printf("test (cryptodev device %s):\n", crfind(crid));
|
||||
printf("test (cryptodev device %s):\n", crfind(ses.crid));
|
||||
hexdump(buffer, size, NULL, 0);
|
||||
goto out;
|
||||
}
|
||||
@ -1412,13 +1411,13 @@ run_aead_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
size);
|
||||
printf("control:\n");
|
||||
hexdump(control_tag, sizeof(control_tag), NULL, 0);
|
||||
printf("test (cryptodev device %s):\n", crfind(crid));
|
||||
printf("test (cryptodev device %s):\n", crfind(ses.crid));
|
||||
hexdump(test_tag, sizeof(test_tag), NULL, 0);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* OCF decrypt */
|
||||
error = ocf_aead(&ses, alg, iv, iv_len, aad, aad_len, ciphertext,
|
||||
error = ocf_aead(&ses, iv, iv_len, aad, aad_len, ciphertext,
|
||||
buffer, size, control_tag, COP_DECRYPT);
|
||||
if (error != 0) {
|
||||
warnc(error, "cryptodev %s (%zu, %zu) failed for device %s",
|
||||
@ -1430,14 +1429,14 @@ run_aead_test(const struct alg *alg, size_t aad_len, size_t size)
|
||||
aad_len, size);
|
||||
printf("control:\n");
|
||||
hexdump(cleartext, size, NULL, 0);
|
||||
printf("test (cryptodev device %s):\n", crfind(crid));
|
||||
printf("test (cryptodev device %s):\n", crfind(ses.crid));
|
||||
hexdump(buffer, size, NULL, 0);
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Verify OCF decrypt fails with busted tag. */
|
||||
test_tag[0] ^= 0x1;
|
||||
error = ocf_aead(&ses, alg, iv, iv_len, aad, aad_len, ciphertext,
|
||||
error = ocf_aead(&ses, iv, iv_len, aad, aad_len, ciphertext,
|
||||
buffer, size, test_tag, COP_DECRYPT);
|
||||
if (error != EBADMSG) {
|
||||
if (error != 0)
|
||||
@ -1585,7 +1584,7 @@ main(int ac, char **av)
|
||||
int ch;
|
||||
|
||||
algname = NULL;
|
||||
crid = CRYPTO_FLAG_HARDWARE;
|
||||
requested_crid = CRYPTO_FLAG_HARDWARE;
|
||||
testall = false;
|
||||
verbose = false;
|
||||
while ((ch = getopt(ac, av, "A:a:d:vz")) != -1)
|
||||
@ -1604,7 +1603,7 @@ main(int ac, char **av)
|
||||
algname = optarg;
|
||||
break;
|
||||
case 'd':
|
||||
crid = crlookup(optarg);
|
||||
requested_crid = crlookup(optarg);
|
||||
break;
|
||||
case 'v':
|
||||
verbose = true;
|
||||
|
Loading…
Reference in New Issue
Block a user