本文整理汇总了Java中org.bouncycastle.crypto.signers.RSADigestSigner类的典型用法代码示例。如果您正苦于以下问题:Java RSADigestSigner类的具体用法?Java RSADigestSigner怎么用?Java RSADigestSigner使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RSADigestSigner类属于org.bouncycastle.crypto.signers包,在下文中一共展示了RSADigestSigner类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createSigner
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
protected Signer createSigner(AlgorithmIdentifier sigAlgId, AlgorithmIdentifier digAlgId)
throws OperatorCreationException {
if (!AlgorithmUtil.isRSASigAlgId(sigAlgId)) {
throw new OperatorCreationException(
"the given algorithm is not a valid RSA signature algirthm '"
+ sigAlgId.getAlgorithm().getId() + "'");
}
if (!PKCSObjectIdentifiers.id_RSASSA_PSS.equals(sigAlgId.getAlgorithm())) {
Digest dig = digestProvider.get(digAlgId);
return new RSADigestSigner(dig);
}
try {
return SignerUtil.createPSSRSASigner(sigAlgId);
} catch (XiSecurityException ex) {
throw new OperatorCreationException(ex.getMessage(), ex);
}
}
示例2: createSigner
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
static Signer createSigner(int keyAlgorithm, int hashAlgorithm)
throws PGPException
{
switch(keyAlgorithm)
{
case PublicKeyAlgorithmTags.RSA_GENERAL:
case PublicKeyAlgorithmTags.RSA_SIGN:
return new RSADigestSigner(createDigest(hashAlgorithm));
case PublicKeyAlgorithmTags.DSA:
return new DSADigestSigner(new DSASigner(), createDigest(hashAlgorithm));
case PublicKeyAlgorithmTags.ECDSA:
return new DSADigestSigner(new ECDSASigner(), createDigest(hashAlgorithm));
default:
throw new PGPException("cannot recognise keyAlgorithm: " + keyAlgorithm);
}
}
示例3: signTicket
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
/**
* Calculates the signature of a ticket and updates the given {@link Ticket} object directly.
*
* @throws IllegalStateException
* If ticket cannot be signed.
*/
public void signTicket(Ticket ticket) throws IllegalStateException {
byte[] serialized = TicketUtil.serialize(ticket);
byte[] claimBytes = TicketUtil.deserialize(ByteBuffer.wrap(serialized)).getRight();
RSAPrivateCrtKeyParameters signingKey = keyManager.getPrivateSigningKey();
if (signingKey == null)
throw new IllegalStateException("Cannot sign ticket because there is no private signing key available.");
RSADigestSigner signer = new RSADigestSigner(new SHA256Digest());
signer.init(true, signingKey);
signer.update(claimBytes, 0, claimBytes.length);
try {
byte[] signature = signer.generateSignature();
ticket.setSignature(signature);
} catch (DataLengthException | CryptoException e) {
throw new IllegalStateException("Cannot sign ticket", e);
}
}
示例4: createSigner
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
protected Signer createSigner(AlgorithmIdentifier sigAlgId)
throws OperatorCreationException
{
AlgorithmIdentifier digAlg = digestAlgorithmFinder.find(sigAlgId);
Digest dig = digestProvider.get(digAlg);
return new RSADigestSigner(dig);
}
示例5: createSigner
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
protected Signer createSigner(AlgorithmIdentifier sigAlgId, AlgorithmIdentifier digAlgId)
throws OperatorCreationException
{
Digest dig = digestProvider.get(digAlgId);
return new RSADigestSigner(dig);
}
示例6: createSigner
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
@Override
protected Signer createSigner(AlgorithmIdentifier sigAlgId) throws OperatorCreationException {
if (PKCSObjectIdentifiers.id_RSASSA_PSS.equals(sigAlgId.getAlgorithm())) {
try {
return SignerUtil.createPSSRSASigner(sigAlgId);
} catch (XiSecurityException ex) {
throw new OperatorCreationException(ex.getMessage(), ex);
}
} else {
AlgorithmIdentifier digAlg = digestAlgorithmFinder.find(sigAlgId);
return new RSADigestSigner(digestProvider.get(digAlg));
}
}
示例7: verifySignatureSHA256
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
public static void verifySignatureSHA256(APublicKey publicKey, byte[] payload, byte[] sig) throws Exception
{
CipherParameters pub = getCipherParameters(publicKey);
RSADigestSigner signer = new RSADigestSigner(new SHA256Digest());
signer.init(false, pub);
signer.update(payload, 0, payload.length);
if(!signer.verifySignature(sig))
{
throw new Exception("failed signature verification");
}
}
示例8: generateSignatureSHA256
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
public static byte[] generateSignatureSHA256(APrivateKey privateKey, byte[] payload) throws Exception
{
CipherParameters pub = getCipherParameters(privateKey);
RSADigestSigner signer = new RSADigestSigner(new SHA256Digest());
signer.init(true, pub);
signer.update(payload, 0, payload.length);
return signer.generateSignature();
}
示例9: isValidTicketSignature
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
/**
* Checks if a {@link Ticket} has a valid signature.
*
* @param deserializedTicket
* The result of {@link TicketUtil#deserialize(ByteBuffer)} of the serialized {@link Ticket}.
* @return true if {@link Ticket} signature is valid.
*/
public boolean isValidTicketSignature(Pair<Ticket, byte[]> deserializedTicket) {
for (RSAKeyParameters pubKey : keyManager.getPublicValidationKeys()) {
RSADigestSigner signer = new RSADigestSigner(new SHA256Digest());
signer.init(false, pubKey);
signer.update(deserializedTicket.getRight(), 0, deserializedTicket.getRight().length);
if (signer.verifySignature(deserializedTicket.getLeft().getSignature()))
return true;
}
return false;
}
示例10: createSigner
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
static Signer createSigner(int keyAlgorithm, int hashAlgorithm)
throws PGPException
{
switch(keyAlgorithm)
{
case PublicKeyAlgorithmTags.RSA_GENERAL:
case PublicKeyAlgorithmTags.RSA_SIGN:
return new RSADigestSigner(createDigest(hashAlgorithm));
case PublicKeyAlgorithmTags.DSA:
return new DSADigestSigner(new DSASigner(), createDigest(hashAlgorithm));
default:
throw new PGPException("cannot recognise keyAlgorithm");
}
}
示例11: RSASignature
import org.bouncycastle.crypto.signers.RSADigestSigner; //导入依赖的package包/类
/**
* Creates a new RSA signature class that uses the given digest algorithm
* for message digest computation.
*
* @param d
* Message digest algorithm.
*/
public RSASignature(final DigestAlgorithm d) {
super(ALGORITHM);
digest = d;
signer = new RSADigestSigner(d.getDigest());
}