package com.airlock.iam.common.domain.model.certificate;

import java.math.BigInteger;
import java.security.cert.X509Certificate;
import javax.security.auth.x500.X500Principal;

public final class CertificateLogUtil {
   private CertificateLogUtil() {
   }

   public static String certificateLogString(X509Certificate certificate) {
      return " SN=" + serial(certificate) + " Issuer: " + issuer(certificate);
   }

   private static String issuer(X509Certificate certificate) {
      X500Principal issuer = certificate.getIssuerX500Principal();
      return issuer == null ? "<no issuer in certificate>" : issuer.getName();
   }

   private static String serial(X509Certificate certificate) {
      BigInteger serialNumber = certificate.getSerialNumber();
      return serialNumber == null ? "<no serial in certificate>" : serialNumber.toString(16);
   }
}
