boringssl/crypto/obj
Adam Langley fbe3a7bb61 Rename the |dont_return_name| flag of |OBJ_obj2txt| to |always_return_oid|.
The name of this has been annoying me every time I've seen it over the
past couple of days. Having a flag with a negation in the name isn't
always bad, but I think this case was.

Change-Id: I5922bf4cc94eab8c59256042a9d9acb575bd40aa
Reviewed-on: https://boringssl-review.googlesource.com/10242
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2016-08-10 17:18:25 +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 Fix a bug in obj_dat.pl and add basic crypto/obj tests. 2016-04-26 15:19:26 +00:00
obj_dat.pl Fix a bug in obj_dat.pl and add basic crypto/obj tests. 2016-04-26 15:19:26 +00:00
obj_mac.num Elliptic curve + post-quantum key exchange 2016-05-19 22:19:14 +00:00
obj_test.cc Rename the |dont_return_name| flag of |OBJ_obj2txt| to |always_return_oid|. 2016-08-10 17:18:25 +00:00
obj_xref.c
obj_xref.h
obj_xref.pl
obj_xref.txt
obj.c Rename the |dont_return_name| flag of |OBJ_obj2txt| to |always_return_oid|. 2016-08-10 17:18:25 +00:00
objects.pl Rename obj_mac.h to nid.h and make it a multiply-includable header. 2016-03-31 20:45:35 +00:00
objects.txt Elliptic curve + post-quantum key exchange 2016-05-19 22:19:14 +00:00
README Rename obj_mac.h to nid.h and make it a multiply-includable header. 2016-03-31 20:45:35 +00:00

OID information is generated via a series of perl scripts. In order, the full
list of commands to run are:

        perl objects.pl objects.txt obj_mac.num ../../include/openssl/nid.h
        perl obj_dat.pl ../../include/openssl/nid.h obj_dat.h
        perl obj_xref.pl obj_mac.num obj_xref.txt > obj_xref.h

objects.txt contains the list of all built-in OIDs. It is processed by
objects.pl to output obj_mac.num and nid.h. obj_mac.num is the list of NID
values for each OID. This is an input/output parameter so NID values are stable
across regenerations. nid.h is the header which defines macros for all the
built-in OIDs in C.

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

obj_mac.num and obj_xref.txt are read by obj_xref.pl to generate
obj_xref.h. obj_xref.txt links signature OIDs to corresponding public key
algorithms and digests. obj_xref.h contains lookup tables for querying this
information in both directions.

Dependency graph:

                        objects.txt
                            |
                            V
                       [objects.pl] <--+
                         /      \      |
                        V        V     |
                     nid.h     obj_mac.num  obj_xref.txt
                      |              \      /
                      V               V    V
                 [obj_dat.pl]      [obj_xref.pl]
                      |                  |
                      V                  V
                  obj_dat.h         obj_xref.h