Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files
8246383: NullPointerException in JceSecurity.getVerificationResult wh…
…en using Entrust provider

Removed the static SecureRandom object in JceSecurity whose instantion caused NPE

Reviewed-by: xuelei
  • Loading branch information
Valerie Peng committed Aug 21, 2020
1 parent 860a529 commit 256cb2b1217ed704a18aac47e5882b0f8b7f36e7
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 17 deletions.
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,6 +27,7 @@

import java.security.spec.AlgorithmParameterSpec;
import java.util.Objects;
import sun.security.jca.JCAUtil;

/**
* The {@code AlgorithmParameterGenerator} class is used to generate a
@@ -308,7 +309,7 @@ public final Provider getProvider() {
* @param size the size (number of bits).
*/
public final void init(int size) {
paramGenSpi.engineInit(size, new SecureRandom());
paramGenSpi.engineInit(size, JCAUtil.getSecureRandom());
}

/**
@@ -339,7 +340,7 @@ public final void init(int size, SecureRandom random) {
*/
public final void init(AlgorithmParameterSpec genParamSpec)
throws InvalidAlgorithmParameterException {
paramGenSpi.engineInit(genParamSpec, new SecureRandom());
paramGenSpi.engineInit(genParamSpec, JCAUtil.getSecureRandom());
}

/**
@@ -1233,7 +1233,7 @@ private static void checkOpmode(int opmode) {
* by the underlying {@code CipherSpi}.
*/
public final void init(int opmode, Key key) throws InvalidKeyException {
init(opmode, key, JceSecurity.RANDOM);
init(opmode, key, JCAUtil.getSecureRandom());
}

/**
@@ -1372,7 +1372,7 @@ public final void init(int opmode, Key key, SecureRandom random)
public final void init(int opmode, Key key, AlgorithmParameterSpec params)
throws InvalidKeyException, InvalidAlgorithmParameterException
{
init(opmode, key, params, JceSecurity.RANDOM);
init(opmode, key, params, JCAUtil.getSecureRandom());
}

/**
@@ -1513,7 +1513,7 @@ public final void init(int opmode, Key key, AlgorithmParameterSpec params,
public final void init(int opmode, Key key, AlgorithmParameters params)
throws InvalidKeyException, InvalidAlgorithmParameterException
{
init(opmode, key, params, JceSecurity.RANDOM);
init(opmode, key, params, JCAUtil.getSecureRandom());
}

/**
@@ -1659,7 +1659,7 @@ public final void init(int opmode, Key key, AlgorithmParameters params,
public final void init(int opmode, Certificate certificate)
throws InvalidKeyException
{
init(opmode, certificate, JceSecurity.RANDOM);
init(opmode, certificate, JCAUtil.getSecureRandom());
}

/**
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -75,11 +75,8 @@ import sun.security.util.Debug;

final class JceSecurity {


private static final Debug debug = Debug.getInstance("jca");

static final SecureRandom RANDOM = new SecureRandom();

// The defaultPolicy and exemptPolicy will be set up
// in the static initializer.
private static CryptoPermissions defaultPolicy = null;
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -446,7 +446,7 @@ public final Provider getProvider() {
* has an incompatible algorithm type.
*/
public final void init(Key key) throws InvalidKeyException {
init(key, JceSecurity.RANDOM);
init(key, JCAUtil.getSecureRandom());
}

/**
@@ -514,7 +514,7 @@ public final void init(Key key, SecureRandom random)
public final void init(Key key, AlgorithmParameterSpec params)
throws InvalidKeyException, InvalidAlgorithmParameterException
{
init(key, params, JceSecurity.RANDOM);
init(key, params, JCAUtil.getSecureRandom());
}

private String getProviderName() {
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -449,7 +449,7 @@ public final void init(SecureRandom random) {
public final void init(AlgorithmParameterSpec params)
throws InvalidAlgorithmParameterException
{
init(params, JceSecurity.RANDOM);
init(params, JCAUtil.getSecureRandom());
}

/**
@@ -513,7 +513,7 @@ public final void init(AlgorithmParameterSpec params, SecureRandom random)
* supported.
*/
public final void init(int keysize) {
init(keysize, JceSecurity.RANDOM);
init(keysize, JCAUtil.getSecureRandom());
}

/**

0 comments on commit 256cb2b

Please sign in to comment.