summaryrefslogtreecommitdiff
path: root/crypto/property/README.md
diff options
context:
space:
mode:
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>2020-06-10 17:49:25 +0200
committerDr. David von Oheimb <David.von.Oheimb@siemens.com>2020-07-05 11:29:43 +0200
commit1dc1ea182be183d8a393fdce4494360aee059cd2 (patch)
tree88ed6f74c0c79a5efa10a7f463061ed223b97fa6 /crypto/property/README.md
parent036cbb6bbf30955abdcffaf6e52cd926d8d8ee75 (diff)
downloadopenssl-new-1dc1ea182be183d8a393fdce4494360aee059cd2.tar.gz
Fix many MarkDown issues in {NOTES*,README*,HACKING,LICENSE}.md files
Reviewed-by: Tim Hudson <tjh@openssl.org> (Merged from https://github.com/openssl/openssl/pull/12109)
Diffstat (limited to 'crypto/property/README.md')
-rw-r--r--crypto/property/README.md23
1 files changed, 15 insertions, 8 deletions
diff --git a/crypto/property/README.md b/crypto/property/README.md
index b3f56cfa2f..9d97a69873 100644
--- a/crypto/property/README.md
+++ b/crypto/property/README.md
@@ -1,4 +1,8 @@
-Properties are associated with algorithms and are used to select between different implementations dynamically.
+Selecting algorithm implementations by properties
+=================================================
+
+Properties are associated with algorithms and are used to select between
+different implementations dynamically.
This implementation is based on a number of assumptions:
@@ -23,7 +27,6 @@ This implementation is based on a number of assumptions:
* Property queries can never add new property definitions.
-
Some consequences of these assumptions are:
* That definition is uncommon and queries are very common, we can treat
@@ -52,14 +55,15 @@ Some consequences of these assumptions are:
properties are changed as doing so removes the need to index on both the
global and requested property strings.
-
The implementation:
-* property_lock.c contains some wrapper functions to handle the global
+* [property_lock.c](property_lock.c)
+ contains some wrapper functions to handle the global
lock more easily. The global lock is held for short periods of time with
per algorithm locking being used for longer intervals.
-* property_string.c contains the string cache which converts property
+* [property_string.c](property_string.c)
+ contains the string cache which converts property
names and values to small integer indices. Names and values are stored in
separate hash tables. The two Boolean values, the strings "yes" and "no",
are populated as the first two members of the value table. All property
@@ -67,13 +71,15 @@ The implementation:
provided to convert from an index back to the original string (this can be
done by maintaining parallel stacks of strings if required).
-* property_parse.c contains the property definition and query parsers.
+* [property_parse.c](property_parse.c)
+ contains the property definition and query parsers.
These convert ASCII strings into lists of properties. The resulting
lists are sorted by the name index. Some additional utility functions
for dealing with property lists are also included: comparison of a query
against a definition and merging two queries into a single larger query.
-* property.c contains the main APIs for defining and using properties.
+* [property.c](property.c)
+ contains the main APIs for defining and using properties.
Algorithms are discovered from their NID and a query string.
The results are cached.
@@ -82,6 +88,7 @@ The implementation:
without bounds and must garbage collect under-used entries. The garbage
collection does not have to be exact.
-* defn_cache.c contains a cache that maps property definition strings to
+* [defn_cache.c](defn_cache.c)
+ contains a cache that maps property definition strings to
parsed properties. It is used by property.c to improve performance when
the same definition appears multiple times.