module ActiveLdap::UserPassword

def extract_salt_for_crypt(crypted_password)

def extract_salt_for_crypt(crypted_password)
  if /\A\$(?:1|5|6|2a)\$[a-zA-Z0-9.\/]{,16}\$/ =~ crypted_password
    $MATCH
  else
    salt = crypted_password[0, 2]
    if salt.size != 2
      raise ArgumentError, _("salt size must be 2: <%s>") % salt
    end
    unless /\A[a-zA-Z0-9.\/]{2}\z/ =~ salt
      message = _("salt character must be [a-zA-Z0-9./]: <%s>") % salt
      raise ArgumentError, message
    end
    salt
  end
end