boringssl/crypto/obj
David Benjamin 05bb1c5033 Implement draft-ietf-curdle-pkix-04's serialization.
The resulting EVP_PKEYs do not do anything useful yet, but we are able
to parse them. Teaching them to sign will be done in a follow-up.

Creating these from in-memory keys is also slightly different from other
types. We don't have or need a public ED25519_KEY struct in
curve25519.h, so I've added tighter constructor functions which should
hopefully be easier to use anyway.

BUG=187

Change-Id: I0bbeea37350d4fdca05b6c6c0f152c15e6ade5bb
Reviewed-on: https://boringssl-review.googlesource.com/14446
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
2017-04-05 23:02:22 +00:00
..
CMakeLists.txt Fix a bug in obj_dat.pl and add basic crypto/obj tests. 2016-04-26 15:19:26 +00:00
obj_dat.h Implement draft-ietf-curdle-pkix-04's serialization. 2017-04-05 23:02:22 +00:00
obj_mac.num Implement draft-ietf-curdle-pkix-04's serialization. 2017-04-05 23:02:22 +00:00
obj_test.cc Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
obj_xref.c Trim and simplify obj_xref.c. 2016-12-21 19:39:41 +00:00
obj.c Reimplement objects.pl in Go. 2016-12-21 22:14:13 +00:00
objects.go Reimplement objects.pl in Go. 2016-12-21 22:14:13 +00:00
objects.txt Implement draft-ietf-curdle-pkix-04's serialization. 2017-04-05 23:02:22 +00:00
README Reimplement objects.pl in Go. 2016-12-21 22:14:13 +00:00

The files nid.h, obj_mac.num, and obj_dat.h are generated from objects.txt and
obj_mac.num. To regenerate them, run:

    go run objects.go

objects.txt contains the list of all built-in OIDs. It is processed by
objects.go to output obj_mac.num, obj_dat.h, and nid.h.

obj_mac.num is the list of NID values for each OID. This is an input/output
file so NID values are stable across regenerations.

nid.h is the header which defines macros for all the built-in OIDs in C.

obj_dat.h contains the ASN1_OBJECTs corresponding to built-in OIDs themselves
along with lookup tables for search by short name, OID, etc.