test_class.declarator: plainPasswords
test_class.modifier: private
test_class.original_string: private List<String> plainPasswords;
test_class.type: List<String>
test_class.var_name: plainPasswords
test_class.declarator: hashedPasswords
test_class.modifier: private static
test_class.original_string: private static Map<String, String> hashedPasswords;
test_class.type: Map<String, String>
test_class.var_name: hashedPasswords
test_class.file: oak-security-spi/src/test/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtilTest.java
test_class.identifier: PasswordUtilTest
test_case.body: @Test
      public void testIsPlainTextForNull() {
          assertTrue(PasswordUtil.isPlainTextPassword(null));
      }
test_case.class_method_signature: PasswordUtilTest.testIsPlainTextForNull()
test_case.full_signature: @Test public void testIsPlainTextForNull()
test_case.identifier: testIsPlainTextForNull
test_case.invocations: assertTrue isPlainTextPassword
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testIsPlainTextForNull()
focal_class.declarator: log = LoggerFactory.getLogger(PasswordUtil.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(PasswordUtil.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: DELIMITER = '-'
focal_class.modifier: private static final
focal_class.original_string: private static final char DELIMITER = '-';
focal_class.type: char
focal_class.var_name: DELIMITER
focal_class.declarator: NO_ITERATIONS = 1
focal_class.modifier: private static final
focal_class.original_string: private static final int NO_ITERATIONS = 1;
focal_class.type: int
focal_class.var_name: NO_ITERATIONS
focal_class.declarator: ENCODING = "UTF-8"
focal_class.modifier: private static final
focal_class.original_string: private static final String ENCODING = "UTF-8";
focal_class.type: String
focal_class.var_name: ENCODING
focal_class.declarator: PBKDF2_KEY_LENGTH = 128
focal_class.modifier: private static final
focal_class.original_string: private static final int PBKDF2_KEY_LENGTH = 128;
focal_class.type: int
focal_class.var_name: PBKDF2_KEY_LENGTH
focal_class.declarator: PBKDF2_PREFIX = "PBKDF2"
focal_class.modifier: static final
focal_class.original_string: static final String PBKDF2_PREFIX = "PBKDF2";
focal_class.type: String
focal_class.var_name: PBKDF2_PREFIX
focal_class.declarator: DEFAULT_ALGORITHM = "SHA-256"
focal_class.modifier: public static final
focal_class.original_string: public static final String DEFAULT_ALGORITHM = "SHA-256";
focal_class.type: String
focal_class.var_name: DEFAULT_ALGORITHM
focal_class.declarator: DEFAULT_SALT_SIZE = 8
focal_class.modifier: public static final
focal_class.original_string: public static final int DEFAULT_SALT_SIZE = 8;
focal_class.type: int
focal_class.var_name: DEFAULT_SALT_SIZE
focal_class.declarator: DEFAULT_ITERATIONS = 1000
focal_class.modifier: public static final
focal_class.original_string: public static final int DEFAULT_ITERATIONS = 1000;
focal_class.type: int
focal_class.var_name: DEFAULT_ITERATIONS
focal_class.file: oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/user/util/PasswordUtil.java
focal_class.identifier: PasswordUtil
focal_class.class_method_signature: PasswordUtil.PasswordUtil()
focal_class.full_signature: private  PasswordUtil()
focal_class.identifier: PasswordUtil
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  PasswordUtil()
focal_class.class_method_signature: PasswordUtil.buildPasswordHash(@NotNull String password)
focal_class.full_signature: public static String buildPasswordHash(@NotNull String password)
focal_class.identifier: buildPasswordHash
focal_class.modifiers: public static
focal_class.parameters: (@NotNull String password)
focal_class.return: String
focal_class.signature: String buildPasswordHash(@NotNull String password)
focal_class.class_method_signature: PasswordUtil.buildPasswordHash(@NotNull String password,
                                             @Nullable String algorithm,
                                             int saltSize, int iterations)
focal_class.full_signature: public static String buildPasswordHash(@NotNull String password,
                                             @Nullable String algorithm,
                                             int saltSize, int iterations)
focal_class.identifier: buildPasswordHash
focal_class.modifiers: public static
focal_class.parameters: (@NotNull String password,
                                             @Nullable String algorithm,
                                             int saltSize, int iterations)
focal_class.return: String
focal_class.signature: String buildPasswordHash(@NotNull String password,
                                             @Nullable String algorithm,
                                             int saltSize, int iterations)
focal_class.class_method_signature: PasswordUtil.buildPasswordHash(@NotNull String password,
                                             @NotNull ConfigurationParameters config)
focal_class.full_signature: public static String buildPasswordHash(@NotNull String password,
                                             @NotNull ConfigurationParameters config)
focal_class.identifier: buildPasswordHash
focal_class.modifiers: public static
focal_class.parameters: (@NotNull String password,
                                             @NotNull ConfigurationParameters config)
focal_class.return: String
focal_class.signature: String buildPasswordHash(@NotNull String password,
                                             @NotNull ConfigurationParameters config)
focal_class.class_method_signature: PasswordUtil.isPlainTextPassword(@Nullable String password)
focal_class.full_signature: public static boolean isPlainTextPassword(@Nullable String password)
focal_class.identifier: isPlainTextPassword
focal_class.modifiers: public static
focal_class.parameters: (@Nullable String password)
focal_class.return: boolean
focal_class.signature: boolean isPlainTextPassword(@Nullable String password)
focal_class.class_method_signature: PasswordUtil.isSame(@Nullable String hashedPassword, @NotNull char[] password)
focal_class.full_signature: public static boolean isSame(@Nullable String hashedPassword, @NotNull char[] password)
focal_class.identifier: isSame
focal_class.modifiers: public static
focal_class.parameters: (@Nullable String hashedPassword, @NotNull char[] password)
focal_class.return: boolean
focal_class.signature: boolean isSame(@Nullable String hashedPassword, @NotNull char[] password)
focal_class.class_method_signature: PasswordUtil.isSame(@Nullable String hashedPassword, @NotNull String password)
focal_class.full_signature: public static boolean isSame(@Nullable String hashedPassword, @NotNull String password)
focal_class.identifier: isSame
focal_class.modifiers: public static
focal_class.parameters: (@Nullable String hashedPassword, @NotNull String password)
focal_class.return: boolean
focal_class.signature: boolean isSame(@Nullable String hashedPassword, @NotNull String password)
focal_class.class_method_signature: PasswordUtil.compareSecure(@NotNull String a, @NotNull String b)
focal_class.full_signature: private static boolean compareSecure(@NotNull String a, @NotNull String b)
focal_class.identifier: compareSecure
focal_class.modifiers: private static
focal_class.parameters: (@NotNull String a, @NotNull String b)
focal_class.return: boolean
focal_class.signature: boolean compareSecure(@NotNull String a, @NotNull String b)
focal_class.class_method_signature: PasswordUtil.generateHash(@NotNull String pwd, @NotNull String algorithm,
                                         @Nullable String salt, int iterations)
focal_class.full_signature: @NotNull private static String generateHash(@NotNull String pwd, @NotNull String algorithm,
                                         @Nullable String salt, int iterations)
focal_class.identifier: generateHash
focal_class.modifiers: @NotNull private static
focal_class.parameters: (@NotNull String pwd, @NotNull String algorithm,
                                         @Nullable String salt, int iterations)
focal_class.return: String
focal_class.signature: String generateHash(@NotNull String pwd, @NotNull String algorithm,
                                         @Nullable String salt, int iterations)
focal_class.class_method_signature: PasswordUtil.generateSalt(int saltSize)
focal_class.full_signature: @NotNull private static String generateSalt(int saltSize)
focal_class.identifier: generateSalt
focal_class.modifiers: @NotNull private static
focal_class.parameters: (int saltSize)
focal_class.return: String
focal_class.signature: String generateSalt(int saltSize)
focal_class.class_method_signature: PasswordUtil.convertBytesToHex(byte[] bytes)
focal_class.full_signature: @NotNull private static String convertBytesToHex(byte[] bytes)
focal_class.identifier: convertBytesToHex
focal_class.modifiers: @NotNull private static
focal_class.parameters: (byte[] bytes)
focal_class.return: String
focal_class.signature: String convertBytesToHex(byte[] bytes)
focal_class.class_method_signature: PasswordUtil.convertHexToBytes(String s)
focal_class.full_signature: @NotNull private static byte[] convertHexToBytes(String s)
focal_class.identifier: convertHexToBytes
focal_class.modifiers: @NotNull private static
focal_class.parameters: (String s)
focal_class.return: byte[]
focal_class.signature: byte[] convertHexToBytes(String s)
focal_class.class_method_signature: PasswordUtil.generatePBKDF2(@NotNull String pwd, @NotNull String salt,
                                           @NotNull String algorithm, int iterations)
focal_class.full_signature: @NotNull private static String generatePBKDF2(@NotNull String pwd, @NotNull String salt,
                                           @NotNull String algorithm, int iterations)
focal_class.identifier: generatePBKDF2
focal_class.modifiers: @NotNull private static
focal_class.parameters: (@NotNull String pwd, @NotNull String salt,
                                           @NotNull String algorithm, int iterations)
focal_class.return: String
focal_class.signature: String generatePBKDF2(@NotNull String pwd, @NotNull String salt,
                                           @NotNull String algorithm, int iterations)
focal_class.class_method_signature: PasswordUtil.generateDigest(@NotNull String data, @NotNull String algorithm, int iterations)
focal_class.full_signature: @NotNull private static String generateDigest(@NotNull String data, @NotNull String algorithm, int iterations)
focal_class.identifier: generateDigest
focal_class.modifiers: @NotNull private static
focal_class.parameters: (@NotNull String data, @NotNull String algorithm, int iterations)
focal_class.return: String
focal_class.signature: String generateDigest(@NotNull String data, @NotNull String algorithm, int iterations)
focal_class.class_method_signature: PasswordUtil.extractAlgorithm(@Nullable String hashedPwd)
focal_class.full_signature: @Nullable private static String extractAlgorithm(@Nullable String hashedPwd)
focal_class.identifier: extractAlgorithm
focal_class.modifiers: @Nullable private static
focal_class.parameters: (@Nullable String hashedPwd)
focal_class.return: String
focal_class.signature: String extractAlgorithm(@Nullable String hashedPwd)
focal_class.class_method_signature: PasswordUtil.extractSalt(@NotNull String hashedPwd, int start)
focal_class.full_signature: @Nullable private static String extractSalt(@NotNull String hashedPwd, int start)
focal_class.identifier: extractSalt
focal_class.modifiers: @Nullable private static
focal_class.parameters: (@NotNull String hashedPwd, int start)
focal_class.return: String
focal_class.signature: String extractSalt(@NotNull String hashedPwd, int start)
focal_class.class_method_signature: PasswordUtil.extractIterations(@NotNull String hashedPwd, int start)
focal_class.full_signature: private static int extractIterations(@NotNull String hashedPwd, int start)
focal_class.identifier: extractIterations
focal_class.modifiers: private static
focal_class.parameters: (@NotNull String hashedPwd, int start)
focal_class.return: int
focal_class.signature: int extractIterations(@NotNull String hashedPwd, int start)
focal_method.body: public static boolean isPlainTextPassword(@Nullable String password) {
          return extractAlgorithm(password) == null;
      }
focal_method.class_method_signature: PasswordUtil.isPlainTextPassword(@Nullable String password)
focal_method.full_signature: public static boolean isPlainTextPassword(@Nullable String password)
focal_method.identifier: isPlainTextPassword
focal_method.invocations: extractAlgorithm
focal_method.modifiers: public static
focal_method.parameters: (@Nullable String password)
focal_method.return: boolean
focal_method.signature: boolean isPlainTextPassword(@Nullable String password)