diff options
Diffstat (limited to 'src/mint/taler-mint-keycheck.c')
-rw-r--r-- | src/mint/taler-mint-keycheck.c | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/src/mint/taler-mint-keycheck.c b/src/mint/taler-mint-keycheck.c index c6186859c..419baf501 100644 --- a/src/mint/taler-mint-keycheck.c +++ b/src/mint/taler-mint-keycheck.c | |||
@@ -32,19 +32,20 @@ static struct GNUNET_CONFIGURATION_Handle *kcfg; | |||
32 | 32 | ||
33 | 33 | ||
34 | static int | 34 | static int |
35 | signkeys_iter (void *cls, const struct TALER_MINT_SignKeyIssue *ski) | 35 | signkeys_iter (void *cls, const struct TALER_MINT_SignKeyIssuePriv *ski) |
36 | { | 36 | { |
37 | struct GNUNET_TIME_Absolute start; | 37 | struct GNUNET_TIME_Absolute start; |
38 | 38 | ||
39 | printf ("iterating over key for start time %s\n", | 39 | printf ("iterating over key for start time %s\n", |
40 | GNUNET_STRINGS_absolute_time_to_string (GNUNET_TIME_absolute_ntoh (ski->start))); | 40 | GNUNET_STRINGS_absolute_time_to_string (GNUNET_TIME_absolute_ntoh (ski->issue.start))); |
41 | 41 | ||
42 | start = GNUNET_TIME_absolute_ntoh (ski->start); | 42 | start = GNUNET_TIME_absolute_ntoh (ski->issue.start); |
43 | 43 | ||
44 | if (ntohl (ski->purpose.size) != | 44 | if (ntohl (ski->issue.purpose.size) != |
45 | (sizeof (struct TALER_MINT_SignKeyIssue) - offsetof (struct TALER_MINT_SignKeyIssue, purpose))) | 45 | (sizeof (struct TALER_MINT_SignKeyIssue) - offsetof (struct TALER_MINT_SignKeyIssue, purpose))) |
46 | { | 46 | { |
47 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Signkey with start %s has invalid purpose field (timestamp: %llu)\n", | 47 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
48 | "Signkey with start %s has invalid purpose field (timestamp: %llu)\n", | ||
48 | GNUNET_STRINGS_absolute_time_to_string (start), | 49 | GNUNET_STRINGS_absolute_time_to_string (start), |
49 | (long long) start.abs_value_us); | 50 | (long long) start.abs_value_us); |
50 | return GNUNET_SYSERR; | 51 | return GNUNET_SYSERR; |
@@ -52,15 +53,16 @@ signkeys_iter (void *cls, const struct TALER_MINT_SignKeyIssue *ski) | |||
52 | 53 | ||
53 | 54 | ||
54 | if (GNUNET_OK != GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MASTER_SIGNKEY, | 55 | if (GNUNET_OK != GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MASTER_SIGNKEY, |
55 | &ski->purpose, | 56 | &ski->issue.purpose, |
56 | &ski->signature, | 57 | &ski->issue.signature, |
57 | &ski->master_pub)) | 58 | &ski->issue.master_pub)) |
58 | { | 59 | { |
59 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Signkey with start %s has invalid signature (timestamp: %llu)\n", | 60 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Signkey with start %s has invalid signature (timestamp: %llu)\n", |
60 | GNUNET_STRINGS_absolute_time_to_string (start), | 61 | GNUNET_STRINGS_absolute_time_to_string (start), |
61 | (long long) start.abs_value_us); | 62 | (long long) start.abs_value_us); |
62 | return GNUNET_SYSERR; | 63 | return GNUNET_SYSERR; |
63 | } | 64 | } |
65 | /* FIXME: what about private key matching the public key? */ | ||
64 | printf ("key valid\n"); | 66 | printf ("key valid\n"); |
65 | return GNUNET_OK; | 67 | return GNUNET_OK; |
66 | } | 68 | } |
@@ -75,16 +77,17 @@ mint_signkeys_check () | |||
75 | } | 77 | } |
76 | 78 | ||
77 | 79 | ||
78 | static int denomkeys_iter (void *cls, | 80 | static int |
79 | const char *alias, | 81 | denomkeys_iter (void *cls, |
80 | const struct TALER_MINT_DenomKeyIssue *dki) | 82 | const char *alias, |
83 | const struct TALER_MINT_DenomKeyIssuePriv *dki) | ||
81 | { | 84 | { |
82 | struct GNUNET_TIME_Absolute start; | 85 | struct GNUNET_TIME_Absolute start; |
83 | 86 | ||
84 | start = GNUNET_TIME_absolute_ntoh (dki->start); | 87 | start = GNUNET_TIME_absolute_ntoh (dki->issue.start); |
85 | 88 | ||
86 | if (ntohl (dki->purpose.size) != | 89 | if (ntohl (dki->issue.purpose.size) != |
87 | (sizeof (struct TALER_MINT_DenomKeyIssue) - offsetof (struct TALER_MINT_DenomKeyIssue, purpose))) | 90 | (sizeof (struct TALER_MINT_DenomKeyIssuePriv) - offsetof (struct TALER_MINT_DenomKeyIssuePriv, issue.purpose))) |
88 | { | 91 | { |
89 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Denomkey for '%s' with start %s has invalid purpose field (timestamp: %llu)\n", | 92 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Denomkey for '%s' with start %s has invalid purpose field (timestamp: %llu)\n", |
90 | alias, | 93 | alias, |
@@ -93,12 +96,14 @@ static int denomkeys_iter (void *cls, | |||
93 | return GNUNET_SYSERR; | 96 | return GNUNET_SYSERR; |
94 | } | 97 | } |
95 | 98 | ||
96 | if (GNUNET_OK != GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MASTER_DENOM, | 99 | if (GNUNET_OK != |
97 | &dki->purpose, | 100 | GNUNET_CRYPTO_eddsa_verify (TALER_SIGNATURE_MASTER_DENOM, |
98 | &dki->signature, | 101 | &dki->issue.purpose, |
99 | &dki->master)) | 102 | &dki->issue.signature, |
103 | &dki->issue.master)) | ||
100 | { | 104 | { |
101 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Denomkey for '%s'with start %s has invalid signature (timestamp: %llu)\n", | 105 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
106 | "Denomkey for '%s'with start %s has invalid signature (timestamp: %llu)\n", | ||
102 | alias, | 107 | alias, |
103 | GNUNET_STRINGS_absolute_time_to_string (start), | 108 | GNUNET_STRINGS_absolute_time_to_string (start), |
104 | (long long) start.abs_value_us); | 109 | (long long) start.abs_value_us); |
@@ -113,7 +118,8 @@ static int denomkeys_iter (void *cls, | |||
113 | static int | 118 | static int |
114 | mint_denomkeys_check () | 119 | mint_denomkeys_check () |
115 | { | 120 | { |
116 | if (0 > TALER_MINT_denomkeys_iterate (mintdir, denomkeys_iter, NULL)) | 121 | if (0 > TALER_MINT_denomkeys_iterate (mintdir, |
122 | &denomkeys_iter, NULL)) | ||
117 | return GNUNET_NO; | 123 | return GNUNET_NO; |
118 | return GNUNET_OK; | 124 | return GNUNET_OK; |
119 | } | 125 | } |
@@ -148,11 +154,11 @@ main (int argc, char *const *argv) | |||
148 | 154 | ||
149 | GNUNET_assert (GNUNET_OK == GNUNET_log_setup ("taler-mint-keycheck", "WARNING", NULL)); | 155 | GNUNET_assert (GNUNET_OK == GNUNET_log_setup ("taler-mint-keycheck", "WARNING", NULL)); |
150 | 156 | ||
151 | if (GNUNET_GETOPT_run ("taler-mint-keyup", options, argc, argv) < 0) | 157 | if (GNUNET_GETOPT_run ("taler-mint-keyup", options, argc, argv) < 0) |
152 | return 1; | 158 | return 1; |
153 | if (NULL == mintdir) | 159 | if (NULL == mintdir) |
154 | { | 160 | { |
155 | fprintf (stderr, "mint directory not given\n"); | 161 | fprintf (stderr, "mint directory not given\n"); |
156 | return 1; | 162 | return 1; |
157 | } | 163 | } |
158 | 164 | ||