-
Notifications
You must be signed in to change notification settings - Fork 115
/
minisign.h
66 lines (57 loc) · 2.03 KB
/
minisign.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef MINISIGN_H
#define MINISIGN_H 1
#define COMMENTMAXBYTES 1024
#define KEYNUMBYTES 8
#define PASSWORDMAXBYTES 1024
#define TRUSTEDCOMMENTMAXBYTES 8192
#define SIGALG "Ed"
#define SIGALG_HASHED "ED"
#define KDFALG "Sc"
#define KDFNONE "\0\0"
#define CHKALG "B2"
#define COMMENT_PREFIX "untrusted comment: "
#define DEFAULT_COMMENT "signature from minisign secret key"
#define SECRETKEY_DEFAULT_COMMENT "minisign encrypted secret key"
#define TRUSTED_COMMENT_PREFIX "trusted comment: "
#define SIG_DEFAULT_CONFIG_DIR ".minisign"
#define SIG_DEFAULT_CONFIG_DIR_ENV_VAR "MINISIGN_CONFIG_DIR"
#define SIG_DEFAULT_PKFILE "minisign.pub"
#define SIG_DEFAULT_SKFILE "minisign.key"
#define SIG_SUFFIX ".minisig"
#define VERSION_STRING "minisign 0.11"
typedef struct KeynumSK_ {
unsigned char keynum[KEYNUMBYTES];
unsigned char sk[crypto_sign_SECRETKEYBYTES];
unsigned char chk[crypto_generichash_BYTES];
} KeynumSK;
typedef struct KeynumPK_ {
unsigned char keynum[KEYNUMBYTES];
unsigned char pk[crypto_sign_PUBLICKEYBYTES];
} KeynumPK;
typedef struct SeckeyStruct_ {
unsigned char sig_alg[2];
unsigned char kdf_alg[2];
unsigned char chk_alg[2];
unsigned char kdf_salt[crypto_pwhash_scryptsalsa208sha256_SALTBYTES];
unsigned char kdf_opslimit_le[8];
unsigned char kdf_memlimit_le[8];
KeynumSK keynum_sk;
} SeckeyStruct;
typedef struct PubkeyStruct_ {
unsigned char sig_alg[2];
KeynumPK keynum_pk;
} PubkeyStruct;
typedef struct SigStruct_ {
unsigned char sig_alg[2];
unsigned char keynum[KEYNUMBYTES];
unsigned char sig[crypto_sign_BYTES];
} SigStruct;
typedef enum Action_ {
ACTION_NONE,
ACTION_GENERATE,
ACTION_SIGN,
ACTION_VERIFY,
ACTION_RECREATE_PK,
ACTION_UPDATE_PASSWORD
} Action;
#endif