<div dir="ltr">problem was using certClient.getCert() instead of certClient.reviewCert(). What is diffrence between those methods, and when use first and when second? I check javadoc, nothing found.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-10-23 19:49 GMT+02:00 John Magne <span dir="ltr"><<a href="mailto:jmagne@redhat.com" target="_blank">jmagne@redhat.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">See CertHoldCLI.java<br>
<br>
Which has an example of doing what you are trying to do.<br>
<span class=""><br>
----- Original Message -----<br>
From: "Marcin Mierzejewski" <<a href="mailto:marcinmierzejewski1024@gmail.com">marcinmierzejewski1024@gmail.com</a>><br>
To: <a href="mailto:pki-users@redhat.com">pki-users@redhat.com</a>, <a href="mailto:pki-devel@redhat.com">pki-devel@redhat.com</a><br>
Sent: Friday, October 23, 2015 8:34:45 AM<br>
Subject: [Pki-users] Cannot revoke user certificate becouse of nonce<br>
<br>
I try to revoke certificate from code I got exception with info about nonce.<br>
<br>
<br>
</span>public void revokeAndApprove( int certificateId) {<br>
<span class=""><br>
CertId certId = new CertId(certificateId);<br>
long nonce = new Random().nextLong();<br>
CertRevokeRequest revokeRequest = new CertRevokeRequest();<br>
revokeRequest.setReason(RevocationReason. KEY_COMPROMISE );<br>
revokeRequest.setComments( "user request revoke" );<br>
revokeRequest.setNonce(nonce);<br>
<br>
</span>CertRequestInfo revokeInfo = certClient .revokeCert(certId, revokeRequest);// here comes an exception<br>
<span class=""><br>
CertReviewResponse reviewData = certClient .reviewRequest(revokeInfo.getRequestId());<br>
reviewData.setNonce( "" +nonce);<br>
log (reviewData.toString());<br>
reviewData.setRequestNotes( "revoke approved" );<br>
</span>certClient .approveRequest(reviewData.getRequestId(), reviewData);<br>
<span class="">}<br>
<br>
<br>
<br>
<br>
when I use this I get exception on line(certClient.revokeCert(...))<br>
<br>
<br>
<br>
com.netscape.certsrv.base.BadRequestException: Nonce for cert-revoke 64 does not exist.<br>
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br>
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)<br>
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)<br>
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)<br>
at com.netscape.certsrv.client.PKIConnection.getEntity(PKIConnection.java:436)<br>
at com.netscape.certsrv.client.PKIClient.getEntity(PKIClient.java:112)<br>
at com.netscape.certsrv.cert.CertClient.revokeCert(CertClient.java:75)<br>
at com.company.CAManager.revokeAndApprove(CAManager.java:186)<br>
<br>
and few other options I'v tried<br>
<br>
<br>
<br>
1. Long nonce = transportCert.getNonce(); // null<br>
<br>
<br>
<br>
</span>2. Long nonce = certClient .getCert(certId).getNonce() //also a null<br>
<span class=""><br>
puting null to setNonce, or not setting it at all give me:<br>
<br>
<br>
com.netscape.certsrv.base.BadRequestException: Missing nonce.<br>
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br>
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)<br>
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)<br>
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)<br>
at com.netscape.certsrv.client.PKIConnection.getEntity(PKIConnection.java:436)<br>
at com.netscape.certsrv.client.PKIClient.getEntity(PKIClient.java:112)<br>
at com.netscape.certsrv.cert.CertClient.revokeCert(CertClient.java:75)<br>
at com.company.CAManager.revokeAndApprove(CAManager.java:187)<br>
at com.company.Main.main(Main.java:21)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
at java.lang.reflect.Method.invoke(Method.java:497)<br>
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)<br>
<br>
I check browser form from enduser entity and nonce value looks like this:"certId:someLongRandomNumber"<br>
Am I not understanding usage of nonce or something in my code is wrong?<br>
<br>
</span>_______________________________________________<br>
Pki-users mailing list<br>
<a href="mailto:Pki-users@redhat.com">Pki-users@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pki-users" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pki-users</a><br>
</blockquote></div><br></div>