Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(562)

Unified Diff: utility/pad_digest_utility.c

Issue 6334133: Add utility to pad a given hash for PKCS1.5 signatures (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/vboot_reference.git@master
Patch Set: fix messages Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utility/Makefile ('k') | utility/signature_digest_utility.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..50f81461577f1be2083afbb3653ca8cb17eade6a
--- /dev/null
+++ b/utility/pad_digest_utility.c
@@ -0,0 +1,54 @@
+/* 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 <alg_id> <digest_file>", argv[0]);
+ 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 not read file: %s\n", argv[2]);
+ return -1;
+ }
+
+ padded_digest = PrependDigestInfo(algorithm, digest);
+ padded_digest_len = (hash_size_map[algorithm] +
+ 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;
+}
« no previous file with comments | « utility/Makefile ('k') | utility/signature_digest_utility.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698