Consider this dummy provider (stolen from <openssl>/test).
It defines Encoders and Decoders that are annotated with property strings like provider=dummy and additionally x.test1='FOO' or x.test2='bar'.
On the CLI, we can often use -propquery to select algorithms.
The following examples are using openssl list -verbose -all-algorithms and variations of -propquery "<PROPQUERYSTRING>".
-propquery "provider=dummy" and -propquery "provider='dummy'" produce the same results:
***** Making test-load *****
OPENSSL_MODULES=. OPENSSL_CONF=/dev/null openssl list -provider dummy -providers -verbose -all-algorithms -propquery provider=dummy
WARNING: Unable to query provider parameters for dummy
Digests:
Provided:
Symmetric Ciphers:
Provided:
Provided KDFs and PDFs:
Provided MACs:
Provided Asymmetric Encryption:
-
Provided Key Exchange:
-
Provided Signatures:
-
Provided Key encapsulation:
-
Provided Key managers:
Provided ENCODERs:
DUMMY @ dummy (provider=dummy,output=pem,x.test2='bar')
Provided DECODERs:
DUMMY @ dummy (provider=dummy,input=pem,x.test1='FOO')
Provided STORE LOADERs:
DUMMY @ dummy
Providers:
dummy
***** Making test-load-quoted *****
OPENSSL_MODULES=. OPENSSL_CONF=/dev/null openssl list -provider dummy -providers -verbose -all-algorithms -propquery provider='dummy'
WARNING: Unable to query provider parameters for dummy
Digests:
Provided:
Symmetric Ciphers:
Provided:
Provided KDFs and PDFs:
Provided MACs:
Provided Asymmetric Encryption:
-
Provided Key Exchange:
-
Provided Signatures:
-
Provided Key encapsulation:
-
Provided Key managers:
Provided ENCODERs:
DUMMY @ dummy (provider=dummy,output=pem,x.test2='bar')
Provided DECODERs:
DUMMY @ dummy (provider=dummy,input=pem,x.test1='FOO')
Provided STORE LOADERs:
DUMMY @ dummy
Providers:
dummy
-propquery "provider=dummy,x.test2='bar'" and -propquery "provider=dummy,x.test2=bar" both list the provided Encoder.
***** Making test-quoted-bar *****
OPENSSL_MODULES=. OPENSSL_CONF=/dev/null openssl list -provider dummy -verbose -all-algorithms -propquery "provider=dummy,x.test2='bar'"
Digests:
Provided:
Symmetric Ciphers:
Provided:
Provided KDFs and PDFs:
Provided MACs:
Provided Asymmetric Encryption:
-
Provided Key Exchange:
-
Provided Signatures:
-
Provided Key encapsulation:
-
Provided Key managers:
Provided ENCODERs:
DUMMY @ dummy (provider=dummy,output=pem,x.test2='bar')
Provided DECODERs:
Provided STORE LOADERs:
DUMMY @ dummy
***** Making test-unquoted-bar *****
OPENSSL_MODULES=. OPENSSL_CONF=/dev/null openssl list -provider dummy -verbose -all-algorithms -propquery "provider=dummy,x.test2=bar"
Digests:
Provided:
Symmetric Ciphers:
Provided:
Provided KDFs and PDFs:
Provided MACs:
Provided Asymmetric Encryption:
-
Provided Key Exchange:
-
Provided Signatures:
-
Provided Key encapsulation:
-
Provided Key managers:
Provided ENCODERs:
DUMMY @ dummy (provider=dummy,output=pem,x.test2='bar')
Provided DECODERs:
Provided STORE LOADERs:
DUMMY @ dummy
-propquery "provider=dummy,x.test1='FOO'" and -propquery "provider=dummy,x.test1=FOO" unexpectedly produce different results!
Only the quoted version displays the provided Decoder!
***** Making test-quoted-FOO *****
OPENSSL_MODULES=. OPENSSL_CONF=/dev/null openssl list -provider dummy -verbose -all-algorithms -propquery "provider=dummy,x.test1='FOO'"
Digests:
Provided:
Symmetric Ciphers:
Provided:
Provided KDFs and PDFs:
Provided MACs:
Provided Asymmetric Encryption:
-
Provided Key Exchange:
-
Provided Signatures:
-
Provided Key encapsulation:
-
Provided Key managers:
Provided ENCODERs:
Provided DECODERs:
DUMMY @ dummy (provider=dummy,input=pem,x.test1='FOO')
Provided STORE LOADERs:
DUMMY @ dummy
***** Making test-unquoted-FOO *****
OPENSSL_MODULES=. OPENSSL_CONF=/dev/null openssl list -provider dummy -verbose -all-algorithms -propquery "provider=dummy,x.test1=FOO"
Digests:
Provided:
Symmetric Ciphers:
Provided:
Provided KDFs and PDFs:
Provided MACs:
Provided Asymmetric Encryption:
-
Provided Key Exchange:
-
Provided Signatures:
-
Provided Key encapsulation:
-
Provided Key managers:
Provided ENCODERs:
Provided DECODERs:
Provided STORE LOADERs:
DUMMY @ dummy