He exportado un certificado digital de clase 3 y puedo obtener los detalles del objeto llamado certificado como se ve a continuación. Tengo la intención de firmar un archivo de texto con este certificado. Sin embargo, como exporté este certificado sin la clave privada, no puedo continuar. He compartido un fragmento debajo de la imagen que tiene etiquetas.
Este es el archivo guardado como .txt y las etiquetas y será el resultado del proceso de firma. Básicamente, la carga útil sin procesar solo tendrá las otras etiquetas antes del proceso de firma.
Mis preguntas:
¿Estoy en el camino correcto para firmar digitalmente el archivo de texto desde el backend?
Si el acceso al certificado se maneja en el lado del cliente usando Javascript
try (InputStream inStream = new FileInputStream("D:\\New folder\\TestCertificate.cer")) { CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream); cert.checkValidity(); System.out.println("This is public key : " + cert.getPublicKey()); System.out.println("This is certificate type: " + cert.getType()); // Code to access a txt file and sign it with the certificate. } catch (CertificateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } <MessageInfo> <SenderIden>XSB000000000</SenderIden> <SenderSP>100023193</SenderSP> <Data><![CDATA[{IFN515}{XSB000000000}{XYZ12345} { :16R:GENL :20C::SEME//A23P8W4 :23G:NEWM :98A::PREP//20220221 :22F::TRTR//TRAD ]]></Data> <SubscriberDS>MIIJuwYJKoZIhvcNAQcCoI</SubscriberDS> <ServiceProviderDS>MIIJuwYJKoZI</ServiceProviderDS> </MessageInfo>