private static void addServices(final ModelNode providerModel, final Provider provider) { ModelNode servicesModel = providerModel.get(ElytronDescriptionConstants.SERVICES); for (Service current : provider.getServices()) { ModelNode serviceModel = new ModelNode(); serviceModel.get(ElytronDescriptionConstants.TYPE).set(current.getType()); serviceModel.get(ElytronDescriptionConstants.ALGORITHM).set(current.getAlgorithm()); serviceModel.get(ElytronDescriptionConstants.CLASS_NAME).set(current.getClassName()); servicesModel.add(serviceModel); } }
/** * Create the EncryptionTool instance */ private EncryptionTool() { StringBuilder sb = new StringBuilder("Found the following security algorithms:"); for (Provider p : Security.getProviders()) { for (Service s : p.getServices()) { String algo = s.getAlgorithm(); sb.append(String.format("%n -Algorithm [ %s ] in provider [ %s ] and service [ %s ]", algo, p.getName(), s.getClassName())); } } if (LOG.isDebugEnabled()) { LOG.debug(sb.toString()); } }
/** * Create the EncryptionTool instance */ @SuppressWarnings("nls") private EncryptionTool() { String out = "Found the following security algorithms:"; for (Provider p : Security.getProviders()) { for (Service s : p.getServices()) { String algo = s.getAlgorithm(); out += String.format("%n -Algorithm [ %s ] in provider [ %s ] and service [ %s ]", algo, p.getName(), s.getClassName()); } } LOG.debug(out); }
aRow.addCell (aService.getType ()); aRow.addCell (aService.getAlgorithm ()); aRow.addCell (aService.getClassName ()); aRow.addCell (aService.getType ()); aRow.addCell (aService.getAlgorithm ()); aRow.addCell (aService.getClassName ());
aRow.addCell (aService.getType ()); aRow.addCell (aService.getAlgorithm ()); aRow.addCell (aService.getClassName ()); aRow.addCell (aService.getType ()); aRow.addCell (aService.getAlgorithm ()); aRow.addCell (aService.getClassName ());
aRow.addCell (aService.getType ()); aRow.addCell (aService.getAlgorithm ()); aRow.addCell (aService.getClassName ()); aRow.addCell (aService.getType ()); aRow.addCell (aService.getAlgorithm ()); aRow.addCell (aService.getClassName ());
/** * Decrypts an encrypted value, if it is encrypted, and returns the clear text. Performs no * operation on the string if it is not encrypted. * * @param value The value to (optionally) be decrypted * @return The clear text */ @SuppressWarnings("nls") private static String decrypt(String value) { if (value != null && value.startsWith(EncryptionTool.ENCRYPTED_VALUE_PREFIX)) { try { return EncryptionTool.getInstance().decrypt(value); } catch (Exception e) { StringBuilder out = new StringBuilder(); for (Provider p : Security.getProviders()) { for (Service s : p.getServices()) { String algo = s.getAlgorithm(); out.append(String.format( "\n==Found Algorithm [ %s ] in provider [ %s ] and service [ %s ]", algo, p.getName(), s.getClassName())); } } logger.debug(out.toString()); logger.warn(String.format("Could not decrypt the configuration value [%s]", value), e); } } return value; }
/** * Check is subClass is a subclass of superClass. If not, * throw a NoSuchAlgorithmException. * @param s * @param subClass * @param superClass * @throws java.security.NoSuchAlgorithmException */ public static void checkSuperClass(Service s, Class<?> subClass, Class<?> superClass) throws NoSuchAlgorithmException { if (superClass == null) { return; } if (superClass.isAssignableFrom(subClass) == false) { throw new NoSuchAlgorithmException ("class configured for " + s.getType() + ": " + s.getClassName() + " not a " + s.getType()); } }
private static void register(BeforeAnalysisAccess access, Service service) { Class<?> serviceClass = access.findClassByName(service.getClassName()); if (serviceClass != null) { registerForReflection(serviceClass); if (isSignature(service) || isCipher(service) || isKeyAgreement(service)) { for (String keyClassName : getSupportedKeyClasses(service)) { Class<?> keyClass = access.findClassByName(keyClassName); if (keyClass != null) { registerForReflection(keyClass); } } } trace("Service registered: " + asString(service)); } else { trace("Service registration failed: " + asString(service) + ". Cause: class not found " + service.getClassName()); } }
/** * This method lists all defined security providers. */ public static void printSecurityProviders() { final Provider[] providers = Security.getProviders(); for (final Provider provider : providers) { LOG.info("PROVIDER: {}", provider.getName()); final Set<Provider.Service> services = provider.getServices(); for (final Provider.Service service : services) { LOG.info("\tALGORITHM: {} / {} / {}", service.getAlgorithm(), service.getType(), service.getClassName()); } } }
private static String asString(Service s) { String str = "Provider = " + s.getProvider().getName() + SEP; str += "Type = " + s.getType() + SEP; str += "Algorithm = " + s.getAlgorithm() + SEP; str += "Class = " + s.getClassName(); if (isSignature(s) || isCipher(s) || isKeyAgreement(s)) { str += SEP + "SupportedKeyClasses = " + Arrays.toString(getSupportedKeyClasses(s)); } return str; }
/** * This method lists all defined security providers. */ public static void printSecurityProvides() { final Provider[] providers = Security.getProviders(); for (final Provider provider : providers) { System.out.println("PROVIDER: " + provider.getName()); final Set<Provider.Service> services = provider.getServices(); for (final Provider.Service service : services) { System.out.println("\tALGORITHM: " + service.getAlgorithm() + " / " + service.getType() + " / " + service.getClassName()); } } }