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