| ||||
| ||||
Не подскажите как с помощью JCP получить подпись с подписываемыми данными?! | ||||
Ответы: | ||||
| ||||
Если не хочется самим реализовывать PKCS#7, можно воспользоваться библиотекой bouncycastle (http://www.bouncycastle.org). В их реализации есть поддержка алгоритмов КриптоПро. | ||||
| ||||
А примеров именно для crypto pro + bouncycastle?! | ||||
| ||||
public String verify(byte[] signedData) throws Exception { byte[] data = signedData; if ( isBase64Encoded(signedData) ) { data = (new BASE64Decoder()).decodeBuffer(new String(signedData)); } CMSSignedData s = new CMSSignedData(data); SignerInformationStore signers = s.getSignerInfos(); Collection c = signers.getSigners(); CMSProcessableByteArray cpb = (CMSProcessableByteArray) s.getSignedContent(); byte[] rawcontent = (byte[]) cpb.getContent() ; Iterator it = c.iterator(); while ( it.hasNext() ) { SignerInformation signer = (SignerInformation)it.next(); if ( !signer.verify( publicKey, providerName) ) { throw new Exception("Message can't be verified!"); } } } | ||||