Feature #14915 » deprecate-string-crypt.patch
| string.c | ||
|---|---|---|
|
char salt_8bit_clean[3];
|
||
|
#endif
|
||
|
rb_warn("The String#crypt method is deprecated. " \
|
||
|
"Install the string-crypt gem and require \"string/crypt\" " \
|
||
|
"to continue using String#crypt.");
|
||
|
StringValue(salt);
|
||
|
mustnot_wchar(str);
|
||
|
mustnot_wchar(salt);
|
||
| test/ruby/test_m17n_comb.rb | ||
|---|---|---|
|
end
|
||
|
end
|
||
|
private def crypt_result(str, salt)
|
||
|
assert_warning(/The String#crypt core method is deprecated/) do
|
||
|
str.crypt(salt)
|
||
|
end
|
||
|
end
|
||
|
private def confirm_crypt_result(str, salt)
|
||
|
if b(salt).length < 2
|
||
|
assert_raise(ArgumentError) { str.crypt(salt) }
|
||
|
assert_raise(ArgumentError) { crypt_result(str, salt) }
|
||
|
return
|
||
|
end
|
||
|
t = str.crypt(salt)
|
||
|
assert_equal(b(str).crypt(b(salt)), t, "#{encdump(str)}.crypt(#{encdump(salt)})")
|
||
|
t = crypt_result(str, salt)
|
||
|
assert_equal(crypt_result(b(str), b(salt)), t, "#{encdump(str)}.crypt(#{encdump(salt)})")
|
||
|
assert_encoding('ASCII-8BIT', t.encoding)
|
||
|
end
|
||
| test/ruby/test_string.rb | ||
|---|---|---|
|
assert_raise(ArgumentError) { "foo".count }
|
||
|
end
|
||
|
def crypt(str, salt)
|
||
|
assert_warning(/The String#crypt core method is deprecated/) do
|
||
|
str.crypt(salt)
|
||
|
end
|
||
|
end
|
||
|
def test_crypt
|
||
|
assert_equal(S('aaGUC/JkO9/Sc'), S("mypassword").crypt(S("aa")))
|
||
|
assert_not_equal(S('aaGUC/JkO9/Sc'), S("mypassword").crypt(S("ab")))
|
||
|
assert_raise(ArgumentError) {S("mypassword").crypt(S(""))}
|
||
|
assert_raise(ArgumentError) {S("mypassword").crypt(S("\0a"))}
|
||
|
assert_raise(ArgumentError) {S("mypassword").crypt(S("a\0"))}
|
||
|
assert_raise(ArgumentError) {S("poison\u0000null").crypt(S("aa"))}
|
||
|
assert_equal(S('aaGUC/JkO9/Sc'), crypt(S("mypassword"), S("aa")))
|
||
|
assert_not_equal(S('aaGUC/JkO9/Sc'), crypt(S("mypassword"), S("ab")))
|
||
|
assert_raise(ArgumentError) {crypt(S("mypassword"), S(""))}
|
||
|
assert_raise(ArgumentError) {crypt(S("mypassword"), S("\0a"))}
|
||
|
assert_raise(ArgumentError) {crypt(S("mypassword"), S("a\0"))}
|
||
|
assert_raise(ArgumentError) {crypt(S("poison\u0000null"), S("aa"))}
|
||
|
[Encoding::UTF_16BE, Encoding::UTF_16LE,
|
||
|
Encoding::UTF_32BE, Encoding::UTF_32LE].each do |enc|
|
||
|
assert_raise(ArgumentError) {S("mypassword").crypt(S("aa".encode(enc)))}
|
||
|
assert_raise(ArgumentError) {S("mypassword".encode(enc)).crypt(S("aa"))}
|
||
|
assert_raise(ArgumentError) {crypt(S("mypassword"), S("aa".encode(enc)))}
|
||
|
assert_raise(ArgumentError) {crypt(S("mypassword".encode(enc)), S("aa"))}
|
||
|
end
|
||
|
@cls == String and
|
||
|
assert_no_memory_leak([], 's = ""', "#{<<~"begin;"}\n#{<<~'end;'}")
|
||
|
begin;
|
||
|
1000.times { s.crypt(-"..").clear }
|
||
|
1000.times { crypt(s, -"..").clear }
|
||
|
end;
|
||
|
end
|
||
| test/webrick/test_httpauth.rb | ||
|---|---|---|
|
next
|
||
|
end
|
||
|
if hash_algo == :bcrypt
|
||
|
warning = /\A\z/
|
||
|
else
|
||
|
warning = /The String#crypt core method is deprecated/
|
||
|
end
|
||
|
define_method(:"test_basic_auth_htpasswd_#{hash_algo}") do
|
||
|
log_tester = lambda {|log, access_log|
|
||
|
log.reject! {|line| /\A\s*\z/ =~ line }
|
||
| ... | ... | |
|
Tempfile.create("test_webrick_auth") {|tmpfile|
|
||
|
tmpfile.close
|
||
|
tmp_pass = WEBrick::HTTPAuth::Htpasswd.new(tmpfile.path, password_hash: hash_algo)
|
||
|
tmp_pass.set_passwd(realm, "webrick", "supersecretpassword")
|
||
|
tmp_pass.set_passwd(realm, "foo", "supersecretpassword")
|
||
|
assert_warning(warning) do
|
||
|
tmp_pass.set_passwd(realm, "webrick", "supersecretpassword")
|
||
|
tmp_pass.set_passwd(realm, "foo", "supersecretpassword")
|
||
|
end
|
||
|
tmp_pass.flush
|
||
|
htpasswd = WEBrick::HTTPAuth::Htpasswd.new(tmpfile.path, password_hash: hash_algo)
|
||
| ... | ... | |
|
}
|
||
|
http = Net::HTTP.new(addr, port)
|
||
|
g = Net::HTTP::Get.new(path)
|
||
|
g.basic_auth("webrick", "supersecretpassword")
|
||
|
http.request(g){|res| assert_equal("hoge", res.body, log.call)}
|
||
|
g.basic_auth("webrick", "not super")
|
||
|
http.request(g){|res| assert_not_equal("hoge", res.body, log.call)}
|
||
|
assert_warning(warning) do
|
||
|
g.basic_auth("webrick", "supersecretpassword")
|
||
|
http.request(g){|res| assert_equal("hoge", res.body, log.call)}
|
||
|
g.basic_auth("webrick", "not super")
|
||
|
http.request(g){|res| assert_not_equal("hoge", res.body, log.call)}
|
||
|
end
|
||
|
}
|
||
|
}
|
||
|
end
|
||
| ... | ... | |
|
Tempfile.create("test_webrick_auth") {|tmpfile|
|
||
|
tmpfile.close
|
||
|
tmp_pass = WEBrick::HTTPAuth::Htpasswd.new(tmpfile.path, password_hash: hash_algo)
|
||
|
tmp_pass.set_passwd(realm, "webrick", "supersecretpassword")
|
||
|
tmp_pass.set_passwd(realm, "foo", "supersecretpassword")
|
||
|
assert_warning(warning) do
|
||
|
tmp_pass.set_passwd(realm, "webrick", "supersecretpassword")
|
||
|
tmp_pass.set_passwd(realm, "foo", "supersecretpassword")
|
||
|
end
|
||
|
tmp_pass.flush
|
||
|
htpasswd = WEBrick::HTTPAuth::Htpasswd.new(tmpfile.path, password_hash: hash_algo)
|
||
| ... | ... | |
|
}
|
||
|
http = Net::HTTP.new(addr, port)
|
||
|
g = Net::HTTP::Get.new(path)
|
||
|
g.basic_auth("foo\ebar", "passwd")
|
||
|
assert_warning(warning) do
|
||
|
g.basic_auth("foo\ebar", "passwd")
|
||
|
end
|
||
|
http.request(g){|res| assert_not_equal("hoge", res.body, log.call) }
|
||
|
}
|
||
|
}
|
||
- « Previous
- 1
- …
- 3
- 4
- 5
- Next »