59cca653a6
time_t was used in the signature and key packet headers, which is typedef of long and is different on 32 and 64 bit architectures. Signature and key format should be independent of architecture. Similar to GPG, I have changed the type to uint32_t. Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin@intel.com> Signed-off-by: James Morris <jmorris@namei.org>
64 lines
1.3 KiB
C
64 lines
1.3 KiB
C
/*
|
|
* Copyright (C) 2011 Nokia Corporation
|
|
* Copyright (C) 2011 Intel Corporation
|
|
*
|
|
* Author:
|
|
* Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
|
|
* <dmitry.kasatkin@intel.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, version 2 of the License.
|
|
*
|
|
*/
|
|
|
|
#ifndef _DIGSIG_H
|
|
#define _DIGSIG_H
|
|
|
|
#include <linux/key.h>
|
|
|
|
enum pubkey_algo {
|
|
PUBKEY_ALGO_RSA,
|
|
PUBKEY_ALGO_MAX,
|
|
};
|
|
|
|
enum digest_algo {
|
|
DIGEST_ALGO_SHA1,
|
|
DIGEST_ALGO_SHA256,
|
|
DIGEST_ALGO_MAX
|
|
};
|
|
|
|
struct pubkey_hdr {
|
|
uint8_t version; /* key format version */
|
|
uint32_t timestamp; /* key made, always 0 for now */
|
|
uint8_t algo;
|
|
uint8_t nmpi;
|
|
char mpi[0];
|
|
} __packed;
|
|
|
|
struct signature_hdr {
|
|
uint8_t version; /* signature format version */
|
|
uint32_t timestamp; /* signature made */
|
|
uint8_t algo;
|
|
uint8_t hash;
|
|
uint8_t keyid[8];
|
|
uint8_t nmpi;
|
|
char mpi[0];
|
|
} __packed;
|
|
|
|
#if defined(CONFIG_SIGNATURE) || defined(CONFIG_SIGNATURE_MODULE)
|
|
|
|
int digsig_verify(struct key *keyring, const char *sig, int siglen,
|
|
const char *digest, int digestlen);
|
|
|
|
#else
|
|
|
|
static inline int digsig_verify(struct key *keyring, const char *sig,
|
|
int siglen, const char *digest, int digestlen)
|
|
{
|
|
return -EOPNOTSUPP;
|
|
}
|
|
|
|
#endif /* CONFIG_SIGNATURE */
|
|
|
|
#endif /* _DIGSIG_H */
|