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 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. Dependency graph: objects.txt | V [objects.pl] <--+ / \ | V V | nid.h obj_mac.num | V [obj_dat.pl] | V obj_dat.h