Guía de desarrollo

Local Navigation

Implementar firmas

El siguiente procedimiento muestra cómo utilizar las firmas con el algoritmo DSA.

  1. Cree y utilice un firmante, y cree un par de claves.
    DSACryptoSystem cryptoSystem = new DSACryptoSystem();
       DSAKeyPair keyPair = new DSAKeyPair( cryptoSystem );
       DSAPrivateKey privateKey = keyPair.getDSAPrivateKey();
  2. Especifique el mensaje que se va a firmar.
    String message = new String("Jeans are on sale");
  3. Cree el firmante.
    SignatureSigner signer = new DSASignatureSigner( privateKey );
       signer.update( message.getBytes() );
  4. Cree una firma X.509.
    EncodedSignature signature = SignatureEncoder.encode( signer, "X509" );
  5. Obtenga los datos de la firma.
    byte[] signatureData = signature.getEncodedSignature(); // bytes
       String encodingAlgorithm = signature.getEncodingAlgorithm(); // "X509"
  6. Verifique la firma.
    1. Recupere la clave pública.
      DSAPublicKey publicKey = keyPair.getDSAPublicKey();
      
    2. Decodifique la firma.
      DecodedSignature decodedSignature = SignatureDecoder.decode(
         signatureData, "X509" );
    3. Obtenga el verificador de firmas.
      SignatureVerifier verifier = decodedSignature.getVerifier(publicKey);
    4. Introduzca el mensaje que se va a verificar.
      verifier.update( message.getBytes() );
    5. Verifique la firma.
      boolean verified = verifier.verify();
    6. Imprima el resultado.
      System.out.println("Signature was verified " + verified + ".");
Tema siguiente: Flujos de firma
Tema anterior: Firmantes de RSA

¿Le ha resultado útil esta información? Envíenos sus comentarios.