Los servicios ocultos son direcciones en base32
This commit is contained in:
parent
f8f9e722be
commit
f50e202d3a
1 changed files with 14 additions and 4 deletions
|
@ -3,7 +3,7 @@
|
||||||
# Alojar el sitio como un servicio oculto de Tor, que en realidad es un
|
# Alojar el sitio como un servicio oculto de Tor, que en realidad es un
|
||||||
# link simbólico al DeployLocal.
|
# link simbólico al DeployLocal.
|
||||||
class DeployHiddenService < DeployWww
|
class DeployHiddenService < DeployWww
|
||||||
validates :hostname, format: { with: /\A[a-f0-9]{56}.onion\z/ }
|
validates :hostname, format: { with: /\A[a-z2-7]{56}.onion\z/ }
|
||||||
|
|
||||||
# Los servicios ocultos son su propio transporte cifrado y
|
# Los servicios ocultos son su propio transporte cifrado y
|
||||||
# autenticado.
|
# autenticado.
|
||||||
|
@ -17,11 +17,9 @@ class DeployHiddenService < DeployWww
|
||||||
# través de la API. El hostname por defecto es un nombre temporal que
|
# través de la API. El hostname por defecto es un nombre temporal que
|
||||||
# se parece a una dirección OnionV3.
|
# se parece a una dirección OnionV3.
|
||||||
#
|
#
|
||||||
# TODO: En el panel se muestra esta dirección como si fuera la real.
|
|
||||||
#
|
|
||||||
# @return [String]
|
# @return [String]
|
||||||
def default_hostname
|
def default_hostname
|
||||||
"#{SecureRandom.hex(28)}.onion"
|
"temporal#{random_base32}.onion"
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
@ -29,4 +27,16 @@ class DeployHiddenService < DeployWww
|
||||||
def implements_hostname_validation?
|
def implements_hostname_validation?
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Adaptado de base32
|
||||||
|
#
|
||||||
|
# @see {https://github.com/stesla/base32/blob/master/lib/base32.rb}
|
||||||
|
# @see {https://github.com/stesla/base32/blob/master/LICENSE}
|
||||||
|
def random_base32(length = 48)
|
||||||
|
table = 'abcdefghijklmnopqrstuvwxyz234567'
|
||||||
|
|
||||||
|
OpenSSL::Random.random_bytes(length).each_byte.map do |b|
|
||||||
|
table[b % 32]
|
||||||
|
end.join
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue