xref: /freebsd/crypto/openssl/crypto/objects/README.md (revision b077aed33b7b6aefca7b17ddb250cf521f938613)
1objects.txt syntax
2==================
3
4To cover all the naming hacks that were previously in `objects.h` needed some
5kind of hacks in `objects.txt`.
6
7The basic syntax for adding an object is as follows:
8
9        1 2 3 4         : shortName     : Long Name
10
11                If Long Name contains only word characters and hyphen-minus
12                (0x2D) or full stop (0x2E) then Long Name is used as basis
13                for the base name in C. Otherwise, the shortName is used.
14
15                The base name (let's call it 'base') will then be used to
16                create the C macros SN_base, LN_base, NID_base and OBJ_base.
17
18                Note that if the base name contains spaces, dashes or periods,
19                those will be converted to underscore.
20
21Then there are some extra commands:
22
23        !Alias foo 1 2 3 4
24
25                This just makes a name foo for an OID.  The C macro
26                OBJ_foo will be created as a result.
27
28        !Cname foo
29
30                This makes sure that the name foo will be used as base name
31                in C.
32
33        !module foo
34        1 2 3 4         : shortName     : Long Name
35        !global
36
37                The !module command was meant to define a kind of modularity.
38                What it does is to make sure the module name is prepended
39                to the base name.  !global turns this off.  This construction
40                is not recursive.
41
42Lines starting with `#` are treated as comments, as well as any line starting
43with ! and not matching the commands above.
44