You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -183,7 +189,7 @@ Instead, since most signature algorithms begin with digesting the message
183
189
into a fixed-length intermediate input, this initial digest can be computed by the software application
184
190
while the HSM performs the rest of the signature algorithm on the digest.
185
191
This is a common technique used in standards such as OpenPGP [OPENPGPCARD],
186
-
PKCS #11 [PKCS11-Spec-v3.1], and PIV [FIPS-201].
192
+
PKCS #11 [PKCS11-Spec-v3.1], and PIV [NIST-SP-800-73-5].
187
193
188
194
Since different signature algorithms digest the message in different ways
189
195
and at different stages of the algorithm,
@@ -219,6 +225,96 @@ but Ed25519ph and Ed25519ph-split use the same verification algorithm.
219
225
220
226
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
221
227
228
+
229
+
## Prior Art
230
+
231
+
Split signing is a common technique used in existing smart card standards.
232
+
The following subsections expand on how the technique is applied in OpenPGP [OPENPGPCARD],
233
+
PKCS #11 [PKCS11-Spec-v3.1], and PIV [NIST-SP-800-73-5].
234
+
235
+
236
+
### OpenPGP
237
+
238
+
The OpenPGP smart card protocol [OPENPGPCARD]
239
+
defines the format of signing commands in section "7.2.10 PSO: COMPUTE DIGITAL SIGNATURE":
240
+
241
+
>**7.2.10 PSO: COMPUTE DIGITAL SIGNATURE**
242
+
>
243
+
>The command for digital signature computation is shown in the table below.
244
+
>The hash value (ECDSA) or the DigestInfo is delivered in the data field of the command. \[...\]
245
+
246
+
The "Data field" parameter is subsequently defined as "Data to be integrated in the DSI: hash value (ELC) or DigestInfo (RSA)".
247
+
Thus both ECDSA and RSA signatures are computed jointly by the host computing the digest of the signed data
248
+
and the smart card finalizing the signature on the digest;
249
+
the host acts as _digester_ and the smart card acts as _signer_.
250
+
251
+
Some OpenPGP smart card implementations also support Ed25519 signatures;
252
+
however no public specification of this protocol is known.
253
+
254
+
255
+
### PKCS #11
256
+
257
+
PKCS #11 [PKCS11-Spec-v3.1]
258
+
defines signing commands in sections "5.13 Signing and MACing functions" and "5.14 Message-based signing and MACing functions".
259
+
These sections define `C_SignInit` and `C_MessageSignInit` functions that both take a `pMechanism` parameter indicating the signature mechanism.
260
+
Mechanisms are defined in section "6 Mechanisms", which notably includes the subsections
261
+
"6.3.12 ECDSA without hashing"and "6.3.13 ECDSA with hashing":
262
+
263
+
>**6.3.12 ECDSA without hashing**
264
+
>
265
+
>\[...\]
266
+
>
267
+
>The ECDSA without hashing mechanism, denoted **CKM_ECDSA**, is a mechanism for single-part signatures and verification for ECDSA.
268
+
>(This mechanism corresponds only to the part of ECDSA that processes the hash value, which should not be longer than 1024 bits;
0 commit comments