248 } while (t.hasNext());
249 throw failure;
250 }
251
252 private static Signature getInstance(Instance instance, String algorithm) {
253 Signature sig;
254 if (instance.impl instanceof Signature) {
255 sig = (Signature)instance.impl;
256 sig.algorithm = algorithm;
257 } else {
258 SignatureSpi spi = (SignatureSpi)instance.impl;
259 sig = new Delegate(spi, algorithm);
260 }
261 sig.provider = instance.provider;
262 return sig;
263 }
264
265 private final static Map<String,Boolean> signatureInfo;
266
267 static {
268 signatureInfo = new ConcurrentHashMap<String,Boolean>();
269 Boolean TRUE = Boolean.TRUE;
270 // pre-initialize with values for our SignatureSpi implementations
271 signatureInfo.put("sun.security.provider.DSA$RawDSA", TRUE);
272 signatureInfo.put("sun.security.provider.DSA$SHA1withDSA", TRUE);
273 signatureInfo.put("sun.security.rsa.RSASignature$MD2withRSA", TRUE);
274 signatureInfo.put("sun.security.rsa.RSASignature$MD5withRSA", TRUE);
275 signatureInfo.put("sun.security.rsa.RSASignature$SHA1withRSA", TRUE);
276 signatureInfo.put("sun.security.rsa.RSASignature$SHA256withRSA", TRUE);
277 signatureInfo.put("sun.security.rsa.RSASignature$SHA384withRSA", TRUE);
278 signatureInfo.put("sun.security.rsa.RSASignature$SHA512withRSA", TRUE);
279 signatureInfo.put("com.sun.net.ssl.internal.ssl.RSASignature", TRUE);
280 signatureInfo.put("sun.security.pkcs11.P11Signature", TRUE);
281 }
282
283 private static boolean isSpi(Service s) {
284 if (s.getType().equals("Cipher")) {
285 // must be a CipherSpi, which we can wrap with the CipherAdapter
286 return true;
287 }
288 String className = s.getClassName();
|
248 } while (t.hasNext());
249 throw failure;
250 }
251
252 private static Signature getInstance(Instance instance, String algorithm) {
253 Signature sig;
254 if (instance.impl instanceof Signature) {
255 sig = (Signature)instance.impl;
256 sig.algorithm = algorithm;
257 } else {
258 SignatureSpi spi = (SignatureSpi)instance.impl;
259 sig = new Delegate(spi, algorithm);
260 }
261 sig.provider = instance.provider;
262 return sig;
263 }
264
265 private final static Map<String,Boolean> signatureInfo;
266
267 static {
268 signatureInfo = new ConcurrentHashMap<>();
269 Boolean TRUE = Boolean.TRUE;
270 // pre-initialize with values for our SignatureSpi implementations
271 signatureInfo.put("sun.security.provider.DSA$RawDSA", TRUE);
272 signatureInfo.put("sun.security.provider.DSA$SHA1withDSA", TRUE);
273 signatureInfo.put("sun.security.rsa.RSASignature$MD2withRSA", TRUE);
274 signatureInfo.put("sun.security.rsa.RSASignature$MD5withRSA", TRUE);
275 signatureInfo.put("sun.security.rsa.RSASignature$SHA1withRSA", TRUE);
276 signatureInfo.put("sun.security.rsa.RSASignature$SHA256withRSA", TRUE);
277 signatureInfo.put("sun.security.rsa.RSASignature$SHA384withRSA", TRUE);
278 signatureInfo.put("sun.security.rsa.RSASignature$SHA512withRSA", TRUE);
279 signatureInfo.put("com.sun.net.ssl.internal.ssl.RSASignature", TRUE);
280 signatureInfo.put("sun.security.pkcs11.P11Signature", TRUE);
281 }
282
283 private static boolean isSpi(Service s) {
284 if (s.getType().equals("Cipher")) {
285 // must be a CipherSpi, which we can wrap with the CipherAdapter
286 return true;
287 }
288 String className = s.getClassName();
|