İmza tipleri arasında dönüşüm işlemi BaseSignedData
sınıfı aracılığı ile yapılabilir. Öncelikle imzalanmış verinin imzacıları, BaseSignedData.getSignerList()
fonksiyonuyla imzalanmış veri içinden alınır. İmza tipi değiştrilmek istenen imzacı, liste içinden bulunarak, imzacının convert()
fonksiyonu çağrılır.
BES tipinden EST tipine dönüşüm yapan örnek kod bloğu:
<sxh java;title:Java>
byte[] inputBES = AsnIO.dosyadanOKU(BES_SIGNATURE_FILE);
BaseSignedData sd = new BaseSignedData(inputBES);
HashMap<String, Object> params = new HashMap<String, Object>();
necessary for getting signaturetimestamp
params.put(EParameters.P_TSS_INFO, getTSSettings());
ValidationPolicy policy= PolicyReader.readValidationPolicy(
New FileInputStream(POLICY_FILE));
necessary for validating signer certificate according to time of signaturetimestamp
params.put(EParameters.P_CERT_VALIDATION_POLICY, policy);
sd.getSignerList().get(0).convert(ESignatureType.TYPE_EST, params);
AsnIO.dosyayaz(sd.getEncoded(),CONVERTED_TO_EST_FILE);
</sxh>
<sxh csharp;title:C#>
byte[] inputBES = AsnIO.dosyadanOKU(BES_SIGNATURE_FILE);
BaseSignedData sd = new BaseSignedData(inputBES);
Dictionary<String, Object> params_ = new Dictionary<String, Object>();
necessary for getting signaturetimestamp
params_[EParameters.P_TSS_INFO] = getTSSettings();
ValidationPolicy policy = PolicyReader.readValidationPolicy(new FileStream(POLICY_FILE,
FileMode.Open,
FileAccess.Read));
necessary for validating signer certificate according to time of signaturetimestamp
params_[EParameters.P_CERT_VALIDATION_POLICY] = policy;
sd.getSignerList()[0].convert(ESignatureType.TYPE_EST, params_);
AsnIO.dosyayaz(sd.getEncoded(), CONVERTED_TO_EST_FILE);
</sxh>