İ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:
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);
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);