Antom, leading provider of tailored payment solutionsAntom, leading provider of tailored payment solutions

Sample code

The following examples assume that you use the Java language.

Signature generation

private String doSign(String content, String privateKey, String charset)

                                                                            throws SignatureException {

        try {

            PrivateKey priKey = KeyReader.getPrivateKeyFromPKCS8("RSA", new ByteArrayInputStream(

                privateKey.getBytes()));

            java.security.Signature signature = java.security.Signature

                .getInstance("SHA256withRSA");

            signature.initSign(priKey);

            signature.update(getContentBytes(content, charset));

            byte[] signed = signature.sign();

            return new String(Base64.encodeBase64(signed));

        } catch (Exception e) {

            throw new SignatureException("Failed to create RSA signature! [content = " + content + "; charset = " + charset

                                         + "]", e);

        }

    }

Signature Verification

private boolean doCheck(String content, String sign, String publicKey, String charset)

                                                                                          throws SignatureException {

        try {

            PublicKey pubKey = KeyReader.getPublicKeyFromX509("RSA", new ByteArrayInputStream(

                publicKey.getBytes()));

            java.security.Signature signature = java.security.Signature

                .getInstance("SHA256withRSA");

            signature.initVerify(pubKey);

            signature.update(getContentBytes(content, charset));

            return signature.verify(Base64.decodeBase64(sign.getBytes()));

        } catch (Exception e) {

            throw new SignatureException("Failed to verify RSA signature! [content = " + content + "; charset = " + charset

                                         + "; signature = " + sign + "]", e);

        }

    }