Re: Need help with PKINIT

sasikumar bodathula sasikumar.b at
Mon May 20 06:50:13 EDT 2013

 Need some assistance in proceeding further with pkinit.

Set up a kerberos server with pkinit support and tested the same with client in another machine and same has been verified with wireshark capture where the padata goes as PA-DASS and value carries the certificate.

Now tried testing the same with the client application which I have developed. In this case padata goes as PA-ENC-TIMESTAMP

Following steps where followed
1. Set the certificate information using krb5_get_init_creds_opt_set_pa (set Identity, anchor and RSA flag).
2. Then tried setting the PATYPE using krb5_get_init_creds_opt_set_preauth_list (KRB5_PADATA_PK_AS_REQ)

Do guide me does i missed some important ste

Best Regards,


From: "sasikumar bodathula" <sasikumar.b at>
Sent: Fri, 17 May 2013 08:42:12 
To: "kerberos at" <kerberos at>
Subject: Re: Need help with PKINIT

  Adding more information to the previous e-mail thread.

In the conf file following information is stored.

pkinit_anchors = FILE:<path>/cacert.pem

  pkinit_identity = FILE:<path>/client.pem,<path>/clientkey.pem

When this was tested and same was captured in the wireshark it has AS_REQ messages not PA-PK-AS-REQ

Question once these path was set as value to the "krb5_get_init_creds_opt_set_pa" will this api pick the certificate from the mentioned path and communicate with the KDC?

Just for testing the client code can i mention KDC which in not reachable so i can see the clients  PA-PK-AS-REQ for testing is this the correct way? Before proceeding to the end-to-end certificate based authentication with KDC.

Best Regards,


From: "sasikumar bodathula" <sasikumar.b at>

Sent: Thu, 16 May 2013 16:53:11 

To: "kerberos at" <');">kerberos at>;

Subject: Re: Need help with PKINIT


  In our case we use the api's to control the client action.

Setup :- 

   we maintain the conf files according to the realm names.

1. In normal scenario we call krb5_get_init_creds_opt_alloc and krb5_get_init_creds_opt_set_forwardable to set the kerberos flags

2. Similarly called 

  krb5_get_init_creds_opt_set_pa(k5->ctx, options, "X509_anchors", "FILE:<path>/cacert.pem" );

        krb5_get_init_creds_opt_set_pa(k5->ctx, options, "X509_user_identity", "FILE:<path>/client.pem,<path>/clientkey.pem");

        krb5_get_init_creds_opt_set_pa(k5->ctx, options, "flag_RSA_PROTOCOL", "yes");

The above data was stored in the conf file.

My question is what ever i am doing is the correct procedure? Please do guide me in this.

Best Regards,


From: Greg Hudson <');">');">ghudson at MIT.EDU>;;

Sent: Thu, 09 May 2013 21:25:53 

To: sasikumar bodathula <sasikumar.b at>

Cc: "kerberos at" <');">');">kerberos at>;;

Subject: Re: Need help with PKINIT

On 05/09/2013 07:18 AM, sasikumar bodathula wrote:

> I am planning to implement PKINIT in my kerberos client application. Read the tutorial for PKINIT options in MIT site and need to know what API's can be used to achieve PKINIT in client application. 

Normally, a client application doesn't need to use any APIs to make

PKINIT work; all you have to do is configure the client and KDC

appropriately using krb5.conf.

If you have a specific need to control PKINIT behavior from the

application, you can create a krb5_get_init_creds_opt object with

krb5_get_init_creds_opt_alloc and set PKINIT-specific attributes with

krb5_get_init_creds_opt_set_pa.  The attributes you can set this way are

described in the kinit man page under the description of the -X

attribute (so X509_user_identity, X509_anchors, and flag_RSA_PROTOCOL).

 You may also need to refer to the krb5.conf man page where it talks

about the pkinit_identities and pkinit_anchors variables.


Kerberos mailing list           Kerberos at


Kerberos mailing list      Kerberos at

More information about the Kerberos mailing list