--- /dev/null
+@node CM
+@cindex CM
+@unnumbered CM
+
+@file{lib/cm} contains CM-related code. It is not directly related to
+the KEKS codec, so it is placed isolated nearby. Currently there are
+functions to deal with public keys verification:
+
+@anchor{KEKSCMPub}
+@DOCSTRING KEKSCMPub@
+
+@DOCSTRING KEKSCMPubParse@
+
+@DOCSTRING KEKSCMPubVerify@
+
+@DOCSTRING KEKSCMPubVerifyOpts@
+
+@anchor{KEKSCMPubSigVerifier}
+@DOCSTRING KEKSCMPubSigVerifier@
@pindex cmd/deatomiser
@item cmd/deatomiser
-Example program that decodes the provided file with iterated
-functions, that uses pretty printer as a callback.
+Decodes the provided file with iterated functions, that uses pretty
+printer as a callback.
@pindex cmd/pp
@item cmd/pp
-Example program that decodes the provided file into @ref{Items, items}
-and pretty prints it. It respects @env{$NO_COLOR} environment variable.
-If @env{$DO_ENCODE} is specified, then it encodes the decoded items into
-memory again and compares if it has the same representation.
+Decodes the provided file into @ref{Items, items} and pretty prints it.
+It respects @env{$NO_COLOR} environment variable. If @env{$DO_ENCODE} is
+specified, then it encodes the decoded items into memory again and
+compares if it has the same representation.
@pindex cmd/pub-verify
@item cmd/pub-verify
@pindex cmd/schema-validate
@item cmd/schema-validate
-Example program that accepts KEKS-encoded schemas, KEKS-encoded data and
-schema name to verify against.
+Accepts KEKS-encoded schemas, KEKS-encoded data and schema name to verify
+against.
@end table
-redo-ifchange docstringer.pl *.texi ../lib/*.h ../lib/pki/*.h
+redo-ifchange docstringer.pl *.texi ../lib/*.h ../lib/cm/*.h
rm -rf build
-./docstringer.pl -v build ../lib:../lib/pki .
+./docstringer.pl -v build ../lib:../lib/cm .
@include atom.texi
@include tai64.texi
@include items.texi
-@include pki.texi
+@include schema.texi
+@include cm.texi
@node Indices
@unnumbered Indices
Whole configuration is in @file{conf/} directory, where you can override
default command invocations and paths.
+
+@example
+$ cat >>conf/cflags <<EOF
+-Weverything
+-O0
+-g
+EOF
+$ echo /somewhere/keks >conf/prefix
+
+$ redo lib/install lib/cm/install
+
+$ cd cmd/pp
+$ redo
+$ ./pp ../../lib/cm/pub.schema.keks
+@end example
@DOCSTRING KEKSItemsGetByKeyLen@
@anchor{KEKSItemsGetByKey}
@DOCSTRING KEKSItemsGetByKey@
-@DOCSTRING KEKSItemsGetByKeyAndType@
@DOCSTRING KEKSStrEqual@
-@DOCSTRING KEKSListHasOnlyType@
-@DOCSTRING KEKSMapHasOnlyType@
+++ /dev/null
-@node PKI
-@cindex PKI
-@unnumbered PKI
-
-@file{lib/pki} contains PKI-related code. It is not directly related to
-the KEKS codec, so it is placed isolated nearby. Currently there are
-functions to deal with certificate verification:
-
-@anchor{KEKSCer}
-@DOCSTRING KEKSCer@
-
-@DOCSTRING KEKSCerParse@
-
-@DOCSTRING KEKSCerVerify@
-
-@DOCSTRING KEKSCerVerifyOpts@
-
-@anchor{KEKSCerSigVerifier}
-@DOCSTRING KEKSCerSigVerifier@
--- /dev/null
+@node Schema
+@cindex schema
+@unnumbered Schema
+
+@anchor{KEKSSchemaErrType}
+@DOCSTRING KEKSSchemaErrType@
+
+@anchor{KEKSSchemaErr}
+@DOCSTRING KEKSSchemaErr@
+
+@anchor{KEKSSchemaValidate}
+@DOCSTRING KEKSSchemaValidate@