Class RSABlindSignatureServer
java.lang.Object
org.bouncycastle.crypto.signers.RSABlindSignatureServer
Server side of the RSA Blind Signature Scheme with Appendix (RSABSSA) defined
in RFC 9474. Implements the
BlindSign step (sec. 4.3): given a blinded
message produced by RSABlindSignatureClient.blind(byte[]), compute
s = m^d mod n and return it, after a self-consistency check
(s^e == m mod n) that catches CRT faults before the value leaves
the server.
The private-key operation is driven through
RSABlindedEngine so the modular
exponentiation is itself blinded against timing side-channels — orthogonal to
the RFC 9474 client/server blinding, which only hides the message.
The variant choice (PSS vs PSSZERO, randomised vs deterministic) is opaque to the server — only the client cares — so this class is variant-agnostic.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]blindSign(byte[] blindedMsg) RFC 9474 sec. 4.3BlindSign.
-
Constructor Details
-
RSABlindSignatureServer
- Parameters:
privateKey- the server's RSA private key. CRT-form (RSAPrivateCrtKeyParameters) is strongly recommended; the public exponent must be available for the RSAVP1 self-check (RFC 9474 sec. 4.3 step 3).
-
-
Method Details
-
blindSign
RFC 9474 sec. 4.3BlindSign. VerifiesblindedMsgas an integer in[0, n)of the modulus length, applies RSASP1, and checks that RSAVP1 round-trips back to the input before returning.- Parameters:
blindedMsg- the blinded message received from the client; must be exactlymodulus_lenbytes.- Returns:
- the blinded signature,
modulus_lenbytes. - Throws:
CryptoException- if the input is the wrong length, out of range, or the RSASP1/RSAVP1 round-trip fails (CRT fault).
-