Use --m32 and --m64 parameters also in HMAC signing code
Signed-off-by: Dmitry Kasatkin <d.kasatkin@samsung.com>
This commit is contained in:
parent
5e8564d155
commit
ca6b42ab17
38
src/evmctl.c
38
src/evmctl.c
@ -933,6 +933,8 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
|
|||||||
unsigned char evmkey[MAX_KEY_SIZE];
|
unsigned char evmkey[MAX_KEY_SIZE];
|
||||||
char list[1024];
|
char list[1024];
|
||||||
ssize_t list_size;
|
ssize_t list_size;
|
||||||
|
struct h_misc_64 hmac_misc;
|
||||||
|
int hmac_size;
|
||||||
|
|
||||||
key = file2bin(keyfile, NULL, &keylen);
|
key = file2bin(keyfile, NULL, &keylen);
|
||||||
if (!key) {
|
if (!key) {
|
||||||
@ -1004,13 +1006,37 @@ static int calc_evm_hmac(const char *file, const char *keyfile, unsigned char *h
|
|||||||
}
|
}
|
||||||
|
|
||||||
memset(&hmac_misc, 0, sizeof(hmac_misc));
|
memset(&hmac_misc, 0, sizeof(hmac_misc));
|
||||||
hmac_misc.ino = st.st_ino;
|
|
||||||
hmac_misc.generation = generation;
|
|
||||||
hmac_misc.uid = st.st_uid;
|
|
||||||
hmac_misc.gid = st.st_gid;
|
|
||||||
hmac_misc.mode = st.st_mode;
|
|
||||||
|
|
||||||
err = !HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, sizeof(hmac_misc));
|
if (msize == 0) {
|
||||||
|
struct h_misc *hmac = (struct h_misc *)&hmac_misc;
|
||||||
|
hmac_size = sizeof(*hmac);
|
||||||
|
hmac->ino = st.st_ino;
|
||||||
|
hmac->generation = generation;
|
||||||
|
hmac->uid = st.st_uid;
|
||||||
|
hmac->gid = st.st_gid;
|
||||||
|
hmac->mode = st.st_mode;
|
||||||
|
} else if (msize == 64) {
|
||||||
|
struct h_misc_64 *hmac = (struct h_misc_64 *)&hmac_misc;
|
||||||
|
hmac_size = sizeof(*hmac);
|
||||||
|
hmac->ino = st.st_ino;
|
||||||
|
hmac->generation = generation;
|
||||||
|
hmac->uid = st.st_uid;
|
||||||
|
hmac->gid = st.st_gid;
|
||||||
|
hmac->mode = st.st_mode;
|
||||||
|
} else {
|
||||||
|
struct h_misc_32 *hmac = (struct h_misc_32 *)&hmac_misc;
|
||||||
|
hmac_size = sizeof(*hmac);
|
||||||
|
hmac->ino = st.st_ino;
|
||||||
|
hmac->generation = generation;
|
||||||
|
hmac->uid = st.st_uid;
|
||||||
|
hmac->gid = st.st_gid;
|
||||||
|
hmac->mode = st.st_mode;
|
||||||
|
}
|
||||||
|
|
||||||
|
log_debug("hmac_misc (%d): ", hmac_size);
|
||||||
|
log_debug_dump(&hmac_misc, hmac_size);
|
||||||
|
|
||||||
|
err = !HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, hmac_size);
|
||||||
if (err) {
|
if (err) {
|
||||||
log_err("HMAC_Update() failed\n");
|
log_err("HMAC_Update() failed\n");
|
||||||
goto out_ctx_cleanup;
|
goto out_ctx_cleanup;
|
||||||
|
@ -63,7 +63,7 @@ struct h_misc {
|
|||||||
uid_t uid;
|
uid_t uid;
|
||||||
gid_t gid;
|
gid_t gid;
|
||||||
unsigned short mode;
|
unsigned short mode;
|
||||||
} hmac_misc;
|
};
|
||||||
|
|
||||||
struct h_misc_32 {
|
struct h_misc_32 {
|
||||||
uint32_t ino;
|
uint32_t ino;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user