Chromium Code Reviews| Index: utility/pad_digest_utility.c |
| diff --git a/utility/pad_digest_utility.c b/utility/pad_digest_utility.c |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..790867bafc2c05af8150249df4404d07afa96b5b |
| --- /dev/null |
| +++ b/utility/pad_digest_utility.c |
| @@ -0,0 +1,53 @@ |
| +/* Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + * |
| + * Utility for to generate a padded hash suitable for generating |
| + * PKCS#1.5 signatures. |
| + */ |
| + |
| + |
| +#include <stdio.h> |
| +#include <stdlib.h> |
| + |
| +#include "file_keys.h" |
| +#include "padding.h" |
| +#include "signature_digest.h" |
| +#include "utility.h" |
| + |
| +int main(int argc, char* argv[]) { |
| + int algorithm = -1; |
| + int error_code = 0; |
| + uint8_t* digest = NULL; |
| + uint8_t* padded_digest = NULL; |
| + uint64_t len; |
| + uint32_t padded_digest_len; |
| + |
| + if (argc != 3) { |
| + fprintf(stderr, "Usage: %s <algoid> <digest_file>", argv[0]); |
|
Randall Spangler
2011/02/05 03:01:40
alg_id?
algoid sounds like a monster plant... :)
gauravsh
2011/02/07 19:12:30
Done.
|
| + return -1; |
| + } |
| + algorithm = atoi(argv[1]); |
| + if (algorithm < 0 || algorithm >= kNumAlgorithms) { |
| + fprintf(stderr, "Invalid Algorithm!\n"); |
| + return -1; |
| + } |
| + |
| + digest = BufferFromFile(argv[2], &len); |
| + if (!digest) { |
| + fprintf(stderr, "Could read file: %s\n", argv[2]); |
|
Randall Spangler
2011/02/05 03:01:40
Could *not* read file?
gauravsh
2011/02/07 19:12:30
Done.
|
| + return -1; |
| + } |
| + |
| + padded_digest = PrependDigestInfo(algorithm, digest); |
| + padded_digest_len = digestinfo_size_map[algorithm]; |
| + |
| + if (!padded_digest) |
| + error_code = -1; |
| + if(padded_digest && |
| + 1 != fwrite(padded_digest, padded_digest_len, 1, stdout)) |
| + error_code = -1; |
| + Free(padded_digest); |
| + Free(digest); |
| + return error_code; |
| +} |