weblogic не может проверить подпись - PullRequest
0 голосов
/ 11 ноября 2019

Я написал код для простой подписи и проверки подписи:

    byte[] test = sign(LetterSigner.defaultPrivKey, "this is test".getBytes());
    boolean b1 = SignUtil.verify(defaultPubKey, testcnt, "this is test".getBytes());
    System.out.println("b1:" + b1);

Проблема заключается в том, что содержимое будет успешно подписано и проверено в моей локальной системе в методе main, но подпись не проверяетна сервере приложений weblogic.

В чем проблема этого кода с сервером приложений weblogic 12.2.1.3.0? метод знака:

public static byte[] sign(PrivateKey priv, byte[] info) throws Exception{
    Signature dsa= Signature.getInstance("SHA1withDSA", "SUN"); 
    dsa.initSign(privateKey);
    dsa.update(info);
    return dsa.sign();
}

вот метод проверки:

public static boolean verify(PublicKey pub,byte[] signedData,byte[] originalData) throws Exception
    {
        if (signedData==null || originalData==null) return false;
        Signature dsa=null;
        try
        {
            dsa = Signature.getInstance("SHA1withDSA");
        }
        catch (NoSuchAlgorithmException e)
        {
            throw new SignUtilException("SignUtil(verify)-->SHA1withDSA algorithm from sun(as provider) not found.",e); 
        }
        try
        {
            dsa.initVerify(pub);
        }
        catch (InvalidKeyException e)
        {
            throw new SignUtilException("SignUtil(verify)-->Invalid key spec is passed as public key.",e);      
        }
        try
        {
            dsa.update(originalData);
            boolean isVerifed = dsa.verify(signedData);
            return isVerifed;
        }

    }
...