public abstract Certificate generateCertificate(UserAuthData subject, PublicKey publicKey, int keyusage, long validity, CertificateProfile certProfile) throws Exception;
public Certificate  generateCertificate(UserAuthData subject, PublicKey publicKey, int keyusage, CertificateProfile certProfile) throws Exception{ return generateCertificate(subject, publicKey, keyusage, -1, certProfile); }
    public abstract Certificate generateCertificate(UserAuthData subject,                                                     PublicKey publicKey,                                                     int keyusage,                                                     long validity,                                                    CertificateProfile certProfile) throws Exception;