aboutsummaryrefslogtreecommitdiffstats
path: root/asn1_decoder.h
diff options
context:
space:
mode:
authorKenny Root <kroot@google.com>2013-10-09 10:14:35 -0700
committerKenny Root <kroot@google.com>2013-10-10 14:19:19 -0700
commit7a4adb5268ae71260c86788ccdeb7a699c80ee0a (patch)
treeda4a744e642f5014c3a1085097590bd4a5997f1c /asn1_decoder.h
parent58c60900ac3682fab08f64373bdd1020713b48f7 (diff)
downloadbootable_recovery-7a4adb5268ae71260c86788ccdeb7a699c80ee0a.zip
bootable_recovery-7a4adb5268ae71260c86788ccdeb7a699c80ee0a.tar.gz
bootable_recovery-7a4adb5268ae71260c86788ccdeb7a699c80ee0a.tar.bz2
Add support for ECDSA signatures
This adds support for key version 5 which is an EC key using the NIST P-256 curve parameters. OTAs may be signed with these keys using the ECDSA signature algorithm with SHA-256. Change-Id: Id88672a3deb70681c78d5ea0d739e10f839e4567
Diffstat (limited to 'asn1_decoder.h')
-rw-r--r--asn1_decoder.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/asn1_decoder.h b/asn1_decoder.h
new file mode 100644
index 0000000..b17141c
--- /dev/null
+++ b/asn1_decoder.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef ASN1_DECODER_H_
+#define ASN1_DECODER_H_
+
+#include <stdint.h>
+
+typedef struct asn1_context asn1_context_t;
+
+asn1_context_t* asn1_context_new(uint8_t* buffer, size_t length);
+void asn1_context_free(asn1_context_t* ctx);
+asn1_context_t* asn1_constructed_get(asn1_context_t* ctx);
+bool asn1_constructed_skip_all(asn1_context_t* ctx);
+int asn1_constructed_type(asn1_context_t* ctx);
+asn1_context_t* asn1_sequence_get(asn1_context_t* ctx);
+asn1_context_t* asn1_set_get(asn1_context_t* ctx);
+bool asn1_sequence_next(asn1_context_t* seq);
+bool asn1_oid_get(asn1_context_t* ctx, uint8_t** oid, size_t* length);
+bool asn1_octet_string_get(asn1_context_t* ctx, uint8_t** octet_string, size_t* length);
+
+#endif /* ASN1_DECODER_H_ */