Мне нужно подписать строку счета-фактуры длиной 44 символа цифровой подписью из pfx-файла (сертификат A1), затем передать ее в качестве параметра в метод и, наконец, распечатать на принтере Zebra ZQ520. Я создал класс Java, который успешно открывает pfx-файл, и другой класс, который генерирует и печатает QR-код. Сейчас я пытаюсь подписать строку, сохранить ее в переменной и передать в качестве параметра в методе printQRCode. Кстати я использую Android Studio .
public class A1Certificate {
public void openCertificate() throws Exception {
try {
KeyStore keystore = KeyStore.getInstance("PKCS12");
char[] password = "123456".toCharArray();
InputStream certificate = getClass().getResourceAsStream("mycertificate.pfx");
try {
keystore.load(certificate ,password);
} catch (IOException e) {
throw new Exception("Invalid Password");
}
} catch (IOException ex) {
ex.printStackTrace();
} catch (CertificateException ex) {
ex.printStackTrace();
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
} catch (UnrecoverableKeyException ex) {
ex.printStackTrace();
} catch (KeyStoreException ex) {
ex.printStackTrace();
}
}
public class ZebraZQ520Printer{
public StringBuilder printQRCode(StringBuilder pfxSignature){
StringBuilder var = new StringBuilder();
var.append("B QR 80 1800 M 2 U 6");
var.append("\r\n");
var.append("MA,"+pfxSignature);
var.append("\r\n");
var.append("ENDQR");
var.append("\r\n");
var.append("\r\n");
return var;
}
}