openssl/crypto/objects
Pauli a1df06b363 This has been added to avoid the situation where some host ctype.h functions
return true for characters > 127.  I.e. they are allowing extended ASCII
characters through which then cause problems.  E.g. marking superscript '2' as
a number then causes the common (ch - '0') conversion to number to fail
miserably.  Likewise letters with diacritical marks can also cause problems.

If a non-ASCII character set is being used (currently only EBCDIC), it is
adjusted for.

The implementation uses a single table with a bit for each of the defined
classes.  These functions accept an int argument and fail for
values out of range or for characters outside of the ASCII set.  They will
work for both signed and unsigned character inputs.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4102)
2017-08-22 09:45:25 +10:00
..
README Remove/rename some old files. 2016-06-01 11:29:57 -04:00
build.info unified build scheme: add build.info files 2016-02-01 12:46:58 +01:00
o_names.c Rename static global "lock" to "obj_lock" 2017-06-26 14:29:19 -04:00
obj_dat.c This has been added to avoid the situation where some host ctype.h functions 2017-08-22 09:45:25 +10:00
obj_dat.h Add interface to the scrypt KDF by means of PKEY_METHOD 2017-08-08 15:44:49 +01:00
obj_dat.pl Add two trivial fixes from old commits 2017-07-05 19:20:33 -04:00
obj_err.c make error tables const and separate header file 2017-06-07 15:12:03 -04:00
obj_lcl.h Copyright consolidation 04/10 2016-05-17 14:24:46 -04:00
obj_lib.c OID code tidy up. 2016-05-18 15:33:11 +01:00
obj_mac.num 'make update' after objects/objects.txt update. 2017-07-03 23:50:11 +02:00
obj_xref.c Clean away remaining 'selftest' code 2016-11-03 13:15:40 +01:00
obj_xref.h Add ED25519 as signature OID 2017-05-30 20:38:20 +01:00
obj_xref.txt Add ED25519 as signature OID 2017-05-30 20:38:20 +01:00
objects.pl Implementation of the ARIA cipher as described in RFC 5794. 2017-02-21 11:51:45 +01:00
objects.txt Add interface to the scrypt KDF by means of PKEY_METHOD 2017-08-08 15:44:49 +01:00
objxref.pl Manual fixes after copyright consolidation 2016-05-17 17:38:18 -04:00

README

objects.txt syntax
------------------

To cover all the naming hacks that were previously in objects.h needed some
kind of hacks in objects.txt.

The basic syntax for adding an object is as follows:

	1 2 3 4		: shortName	: Long Name

		If Long Name contains only word characters and hyphen-minus
		(0x2D) or full stop (0x2E) then Long Name is used as basis
		for the base name in C. Otherwise, the shortName is used.

		The base name (let's call it 'base') will then be used to
		create the C macros SN_base, LN_base, NID_base and OBJ_base.

		Note that if the base name contains spaces, dashes or periods,
		those will be converte to underscore.

Then there are some extra commands:

	!Alias foo 1 2 3 4

		This just makes a name foo for an OID.  The C macro
		OBJ_foo will be created as a result.

	!Cname foo

		This makes sure that the name foo will be used as base name
		in C.

	!module foo
	1 2 3 4		: shortName	: Long Name
	!global

		The !module command was meant to define a kind of modularity.
		What it does is to make sure the module name is prepended
		to the base name.  !global turns this off.  This construction
		is not recursive.

Lines starting with # are treated as comments, as well as any line starting
with ! and not matching the commands above.