Pkcs11SigningBackend.java
package io.mersel.dss.signer.api.models;
import eu.europa.esig.dss.enumerations.SignatureAlgorithm;
import io.mersel.dss.signer.api.exceptions.SignatureException;
import io.mersel.dss.signer.api.services.keystore.iaik.Pkcs11Signer;
/**
* PKCS#11 tabanlı imzalama arka ucu.
*
* <p>Özel anahtar token dışına çıkmaz; gerçek imzalama işlemi
* {@link Pkcs11Signer} üzerinden HSM'e delege edilir.</p>
*/
public final class Pkcs11SigningBackend implements SigningBackend {
private final Pkcs11Signer signer;
public Pkcs11SigningBackend(Pkcs11Signer signer) {
if (signer == null) {
throw new IllegalArgumentException("PKCS#11 imzalama arka ucunda signer null olamaz");
}
this.signer = signer;
}
@Override
public String getName() {
return "HSM/PKCS#11";
}
@Override
public boolean isPkcs11() {
return true;
}
@Override
public byte[] sign(byte[] dataToSign, SignatureAlgorithm signatureAlgorithm) {
try {
return signer.sign(dataToSign, signatureAlgorithm);
} catch (SignatureException e) {
throw e;
} catch (Exception e) {
throw new SignatureException("HSM imzası oluşturulamadı", e);
}
}
public Pkcs11Signer getSigner() {
return signer;
}
}