public static POPOSigningKey getInstance(Object o) { if (o instanceof POPOSigningKey) { return (POPOSigningKey)o; } if (o != null) { return new POPOSigningKey(ASN1Sequence.getInstance(o)); } return null; }
/** * Return whether or not the proof-of-possession (POP) is of the type popSigningKey and * it has a public key MAC associated with it. * * @return true if POP is popSigningKey and a PKMAC is present, false otherwise. */ public boolean hasSigningKeyProofOfPossessionWithPKMAC() { ProofOfPossession pop = certReqMsg.getPopo(); if (pop.getType() == popSigningKey) { POPOSigningKey popoSign = POPOSigningKey.getInstance(pop.getObject()); return popoSign.getPoposkInput().getPublicKeyMAC() != null; } return false; }
private boolean verifySignature(ContentVerifierProvider verifierProvider, POPOSigningKey popoSign) throws CRMFException { ContentVerifier verifier; try { verifier = verifierProvider.get(popoSign.getAlgorithmIdentifier()); } catch (OperatorCreationException e) { throw new CRMFException("unable to create verifier: " + e.getMessage(), e); } if (popoSign.getPoposkInput() != null) { CRMFUtil.derEncodeToStream(popoSign.getPoposkInput(), verifier.getOutputStream()); } else { CRMFUtil.derEncodeToStream(certReqMsg.getCertReq(), verifier.getOutputStream()); } return verifier.verify(popoSign.getSignature().getOctets()); }
public static POPOSigningKey getInstance(ASN1TaggedObject obj, boolean explicit) { return getInstance(ASN1Sequence.getInstance(obj, explicit)); }
private boolean verifySignature(ContentVerifierProvider verifierProvider, POPOSigningKey popoSign) throws CRMFException { ContentVerifier verifier; try { verifier = verifierProvider.get(popoSign.getAlgorithmIdentifier()); } catch (OperatorCreationException e) { throw new CRMFException("unable to create verifier: " + e.getMessage(), e); } if (popoSign.getPoposkInput() != null) { CRMFUtil.derEncodeToStream(popoSign.getPoposkInput(), verifier.getOutputStream()); } else { CRMFUtil.derEncodeToStream(certReqMsg.getCertReq(), verifier.getOutputStream()); } return verifier.verify(popoSign.getSignature().getOctets()); }
public static POPOSigningKey getInstance(ASN1TaggedObject obj, boolean explicit) { return getInstance(ASN1Sequence.getInstance(obj, explicit)); }
/** * Return whether or not the proof-of-possession (POP) is of the type popSigningKey and * it has a public key MAC associated with it. * * @return true if POP is popSigningKey and a PKMAC is present, false otherwise. */ public boolean hasSigningKeyProofOfPossessionWithPKMAC() { ProofOfPossession pop = certReqMsg.getPopo(); if (pop.getType() == popSigningKey) { POPOSigningKey popoSign = POPOSigningKey.getInstance(pop.getObject()); return popoSign.getPoposkInput().getPublicKeyMAC() != null; } return false; }
public static POPOSigningKey getInstance(Object o) { if (o instanceof POPOSigningKey) { return (POPOSigningKey)o; } if (o != null) { return new POPOSigningKey(ASN1Sequence.getInstance(o)); } return null; }
private ProofOfPossession(ASN1TaggedObject tagged) { tagNo = tagged.getTagNo(); switch (tagNo) { case 0: obj = DERNull.INSTANCE; break; case 1: obj = POPOSigningKey.getInstance(tagged, false); break; case 2: case 3: obj = POPOPrivKey.getInstance(tagged, true); break; default: throw new IllegalArgumentException("unknown tag: " + tagNo); } }
/** * Return whether or not a signing key proof-of-possession (POP) is valid. * * @param verifierProvider a provider that can produce content verifiers for the signature contained in this POP. * @return true if the POP is valid, false otherwise. * @throws CRMFException if there is a problem in verification or content verifier creation. * @throws IllegalStateException if POP not appropriate. */ public boolean isValidSigningKeyPOP(ContentVerifierProvider verifierProvider) throws CRMFException, IllegalStateException { ProofOfPossession pop = certReqMsg.getPopo(); if (pop.getType() == popSigningKey) { POPOSigningKey popoSign = POPOSigningKey.getInstance(pop.getObject()); if (popoSign.getPoposkInput() != null && popoSign.getPoposkInput().getPublicKeyMAC() != null) { throw new IllegalStateException("verification requires password check"); } return verifySignature(verifierProvider, popoSign); } else { throw new IllegalStateException("not Signing Key type of proof of possession"); } }
return new POPOSigningKey(popo, signer.getAlgorithmIdentifier(), new DERBitString(signer.getSignature()));
private ProofOfPossession(ASN1TaggedObject tagged) { tagNo = tagged.getTagNo(); switch (tagNo) { case 0: obj = DERNull.INSTANCE; break; case 1: obj = POPOSigningKey.getInstance(tagged, false); break; case 2: case 3: obj = POPOPrivKey.getInstance(tagged, false); break; default: throw new IllegalArgumentException("unknown tag: " + tagNo); } }
/** * Return whether or not a signing key proof-of-possession (POP) is valid. * * @param verifierProvider a provider that can produce content verifiers for the signature contained in this POP. * @return true if the POP is valid, false otherwise. * @throws CRMFException if there is a problem in verification or content verifier creation. * @throws IllegalStateException if POP not appropriate. */ public boolean isValidSigningKeyPOP(ContentVerifierProvider verifierProvider) throws CRMFException, IllegalStateException { ProofOfPossession pop = certReqMsg.getPopo(); if (pop.getType() == popSigningKey) { POPOSigningKey popoSign = POPOSigningKey.getInstance(pop.getObject()); if (popoSign.getPoposkInput() != null && popoSign.getPoposkInput().getPublicKeyMAC() != null) { throw new IllegalStateException("verification requires password check"); } return verifySignature(verifierProvider, popoSign); } else { throw new IllegalStateException("not Signing Key type of proof of possession"); } }
return new POPOSigningKey(popo, signer.getAlgorithmIdentifier(), new DERBitString(signer.getSignature()));
POPOSigningKey popoSign = POPOSigningKey.getInstance(pop.getObject()); if (popoSign.getPoposkInput() == null || popoSign.getPoposkInput().getSender() != null) PKMACValue pkMAC = popoSign.getPoposkInput().getPublicKeyMAC(); PKMACValueVerifier macVerifier = new PKMACValueVerifier(macBuilder);
POPOSigningKey popoSign = POPOSigningKey.getInstance(pop.getObject()); if (popoSign.getPoposkInput() == null || popoSign.getPoposkInput().getSender() != null) PKMACValue pkMAC = popoSign.getPoposkInput().getPublicKeyMAC(); PKMACValueVerifier macVerifier = new PKMACValueVerifier(macBuilder);