projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
timeline controller: rate limit timelines to 3 requests per 500ms per timeline per...
[akkoma]
/
lib
/
pleroma
/
captcha
/
captcha.ex
diff --git
a/lib/pleroma/captcha/captcha.ex
b/lib/pleroma/captcha/captcha.ex
index c2765a5b8941ab2bc89f0d1ec6618ae31cbddff1..cf75c3adc3bb0b41b5c74e82c461d6f312fb2875 100644
(file)
--- a/
lib/pleroma/captcha/captcha.ex
+++ b/
lib/pleroma/captcha/captcha.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-20
19
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-20
20
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Captcha do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Captcha do
@@
-50,7
+50,7
@@
defmodule Pleroma.Captcha do
token = new_captcha[:token]
secret = KeyGenerator.generate(secret_key_base, token <> "_encrypt")
sign_secret = KeyGenerator.generate(secret_key_base, token <> "_sign")
token = new_captcha[:token]
secret = KeyGenerator.generate(secret_key_base, token <> "_encrypt")
sign_secret = KeyGenerator.generate(secret_key_base, token <> "_sign")
- # Basicall
t
y copy what Phoenix.Token does here, add the time to
+ # Basically copy what Phoenix.Token does here, add the time to
# the actual data and make it a binary to then encrypt it
encrypted_captcha_answer =
%{
# the actual data and make it a binary to then encrypt it
encrypted_captcha_answer =
%{
@@
-62,7
+62,7
@@
defmodule Pleroma.Captcha do
{
:reply,
{
:reply,
- # Rep
al
ce the answer with the encrypted answer
+ # Rep
la
ce the answer with the encrypted answer
%{new_captcha | answer_data: encrypted_captcha_answer},
state
}
%{new_captcha | answer_data: encrypted_captcha_answer},
state
}
@@
-82,7
+82,8
@@
defmodule Pleroma.Captcha do
valid_if_after = DateTime.subtract!(DateTime.now_utc(), seconds_valid)
result =
valid_if_after = DateTime.subtract!(DateTime.now_utc(), seconds_valid)
result =
- with {:ok, data} <- MessageEncryptor.decrypt(answer_data, secret, sign_secret),
+ with false <- is_nil(answer_data),
+ {:ok, data} <- MessageEncryptor.decrypt(answer_data, secret, sign_secret),
%{at: at, answer_data: answer_md5} <- :erlang.binary_to_term(data) do
try do
if DateTime.before?(at, valid_if_after),
%{at: at, answer_data: answer_md5} <- :erlang.binary_to_term(data) do
try do
if DateTime.before?(at, valid_if_after),