Skip to content

Commit f3f0fec

Browse files
author
Danielle Madeley
committed
Update README
1 parent eac1183 commit f3f0fec

File tree

1 file changed

+72
-7
lines changed

1 file changed

+72
-7
lines changed

README.rst

+72-7
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,36 @@ AES
4848
# Open a session on our token
4949
with token.open(user_pin='1234') as session:
5050
# Generate an AES key in this session
51-
key = session.generate_key(pkcs11.KeyType.AES, 256, store=False)
51+
key = session.generate_key(pkcs11.KeyType.AES, 256)
5252

5353
# Get an initialisation vector
5454
iv = session.generate_random(128) # AES blocks are fixed at 128 bits
5555
# Encrypt our data
5656
crypttext = key.encrypt(data, mechanism_param=iv)
5757

58+
3DES
59+
~~~~
60+
61+
::
62+
63+
import pkcs11
64+
65+
# Initialise our PKCS#11 library
66+
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
67+
token = lib.get_token(token_label='DEMO')
68+
69+
data = b'INPUT DATA'
70+
71+
# Open a session on our token
72+
with token.open(user_pin='1234') as session:
73+
# Generate a DES key in this session
74+
key = session.generate_key(pkcs11.KeyType.DES3)
75+
76+
# Get an initialisation vector
77+
iv = session.generate_random(64) # DES blocks are fixed at 64 bits
78+
# Encrypt our data
79+
crypttext = key.encrypt(data, mechanism_param=iv)
80+
5881
RSA
5982
~~~
6083

@@ -70,11 +93,53 @@ RSA
7093
# Open a session on our token
7194
with token.open(user_pin='1234') as session:
7295
# Generate an RSA keypair in this session
73-
pub, priv = session.generate_keypair(pkcs11.KeyType.RSA, 2048, store=False)
96+
pub, priv = session.generate_keypair(pkcs11.KeyType.RSA, 2048)
7497

7598
# Encrypt as one block
7699
crypttext = pub.encrypt(data)
77100

101+
DSA
102+
~~~
103+
104+
::
105+
106+
import pkcs11
107+
108+
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
109+
token = lib.get_token(token_label='DEMO')
110+
111+
data = b'INPUT DATA'
112+
113+
# Open a session on our token
114+
with token.open(user_pin='1234') as session:
115+
# Generate an DSA keypair in this session
116+
pub, priv = session.generate_keypair(pkcs11.KeyType.DSA, 1024)
117+
118+
# Sign
119+
signature = priv.sign(data)
120+
121+
ECDSA
122+
~~~~~
123+
124+
::
125+
126+
import pkcs11
127+
128+
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
129+
token = lib.get_token(token_label='DEMO')
130+
131+
data = b'INPUT DATA'
132+
133+
# Open a session on our token
134+
with token.open(user_pin='1234') as session:
135+
# Generate an EC keypair in this session from a named curve
136+
pub, priv = session.create_domain_parameters(
137+
pkcs11.KeyType.EC, {
138+
pkcs11.Attribute: pkcs11.util.ec.encode_named_curve_parameters('prime256v1'),
139+
}, local=True)
140+
141+
# Sign
142+
signature = priv.sign(data)
78143

79144
Diffie-Hellman
80145
~~~~~~~~~~~~~~
@@ -182,9 +247,9 @@ Tested Compatibility
182247
| DES3 +---------------------+--------------+-----------------+
183248
| | Encrypt/Decrypt | Works | Works |
184249
| +---------------------+--------------+-----------------+
185-
| | Wrap/Unwrap | ? | ? |
250+
| | Wrap/Unwrap | Not tested | Not tested |
186251
| +---------------------+--------------+-----------------+
187-
| | Sign/Verify | ? | ? |
252+
| | Sign/Verify | Not tested | Not tested |
188253
+--------+---------------------+--------------+-----------------+
189254
| RSA | Generate key pair | Works | Works |
190255
| +---------------------+--------------+-----------------+
@@ -196,7 +261,7 @@ Tested Compatibility
196261
+--------+---------------------+--------------+-----------------+
197262
| DSA | Generate parameters | Works | Error |
198263
| +---------------------+--------------+-----------------+
199-
| | Generate key pair | Works | Works |
264+
| | Generate key pair | Works | Caveats [5]_ |
200265
| +---------------------+--------------+-----------------+
201266
| | Sign/Verify | Works | Works [4]_ |
202267
+--------+---------------------+--------------+-----------------+
@@ -206,7 +271,7 @@ Tested Compatibility
206271
| +---------------------+--------------+-----------------+
207272
| | Derive Key | Works | Caveats [7]_ |
208273
+--------+---------------------+--------------+-----------------+
209-
| EC | Generate key pair | Caveats [5]_ | ? [3]_ |
274+
| EC | Generate key pair | Caveats [6]_ | ? [3]_ |
210275
| +---------------------+--------------+-----------------+
211276
| | Sign/Verify (ECDSA) | Works [4]_ | ? [3]_ |
212277
| +---------------------+--------------+-----------------+
@@ -219,7 +284,7 @@ Tested Compatibility
219284
.. [2] Digesting keys is not supported.
220285
.. [3] Untested: requires support in device.
221286
.. [4] Default mechanism not supported, must specify a mechanism.
222-
.. [5] Partial support: mechanisms missing
287+
.. [5] From existing domain parameters.
223288
.. [6] Local domain parameters only.
224289
.. [7] Generates security warnings about the derived key.
225290

0 commit comments

Comments
 (0)