1
package org.bouncycastle.cert.crmf;
3
import java.io.IOException;
4
import java.io.OutputStream;
6
import org.bouncycastle.asn1.DERBitString;
7
import org.bouncycastle.asn1.crmf.PKMACValue;
8
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
9
import org.bouncycastle.operator.MacCalculator;
11
class PKMACValueGenerator
13
private PKMACBuilder builder;
15
public PKMACValueGenerator(PKMACBuilder builder)
17
this.builder = builder;
20
public PKMACValue generate(char[] password, SubjectPublicKeyInfo keyInfo)
23
MacCalculator calculator = builder.build(password);
25
OutputStream macOut = calculator.getOutputStream();
29
macOut.write(keyInfo.getDEREncoded());
35
throw new CRMFException("exception encoding mac input: " + e.getMessage(), e);
38
return new PKMACValue(calculator.getAlgorithmIdentifier(), new DERBitString(calculator.getMac()));