tor-commits
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
November 2019
- 20 participants
- 2924 discussions
commit a1d5d9726e3653f58035c76420582059b0c86d13
Author: Damian Johnson <atagar(a)torproject.org>
Date: Fri Nov 22 13:22:50 2019 -0800
Faster ed25519 blinding
Thanks to Paul ed25519 blinding is now fully two orders of magnitude faster!
https://github.com/pyca/cryptography/issues/5068
Replaced slow_ed25519.py with an optimized implementation from...
https://github.com/pyca/ed25519/
This changes the runtime of test_blinding as follows:
Python 2.7: 2.25s => 20 ms
Python 3.5: 1.83s => 19 ms
---
stem/descriptor/hidden_service.py | 44 ++---
stem/util/ed25519.py | 311 ++++++++++++++++++++++++++++++
stem/util/slow_ed25519.py | 171 ----------------
stem/util/test_tools.py | 11 ++
test/settings.cfg | 4 +-
test/unit/descriptor/hidden_service_v3.py | 4 +-
6 files changed, 347 insertions(+), 198 deletions(-)
diff --git a/stem/descriptor/hidden_service.py b/stem/descriptor/hidden_service.py
index 94edeba4..ea1ae739 100644
--- a/stem/descriptor/hidden_service.py
+++ b/stem/descriptor/hidden_service.py
@@ -51,7 +51,6 @@ import stem.util.tor_tools
from stem.client.datatype import CertType
from stem.descriptor.certificate import ExtensionType, Ed25519Extension, Ed25519Certificate, Ed25519CertificateV1
-from stem.util import slow_ed25519
from stem.descriptor import (
PGP_BLOCK_END,
@@ -917,10 +916,8 @@ class HiddenServiceDescriptorV3(BaseHiddenServiceDescriptor):
Construction through this method can supply any or none of these, with
omitted parameters populated with randomized defaults.
- `Ed25519 key blinding takes several seconds
- <https://github.com/pyca/cryptography/issues/5068>`_, and as such is
- disabled if a **blinding_nonce** is not provided. To blind with a random
- nonce simply call...
+ Ed25519 key blinding adds an additional ~20 ms, and as such is disabled by
+ default. To blind with a random nonce simply call...
::
@@ -1302,13 +1299,16 @@ class InnerLayer(Descriptor):
def _blinded_pubkey(identity_key, blinding_nonce):
- mult = 2 ** (slow_ed25519.b - 2) + sum(2 ** i * slow_ed25519.bit(blinding_nonce, i) for i in range(3, slow_ed25519.b - 2))
- P = slow_ed25519.decodepoint(stem.util._pubkey_bytes(identity_key))
- return slow_ed25519.encodepoint(slow_ed25519.scalarmult(P, mult))
+ from stem.util import ed25519
+
+ mult = 2 ** (ed25519.b - 2) + sum(2 ** i * ed25519.bit(blinding_nonce, i) for i in range(3, ed25519.b - 2))
+ P = ed25519.decodepoint(stem.util._pubkey_bytes(identity_key))
+ return ed25519.encodepoint(ed25519.scalarmult(P, mult))
def _blinded_sign(msg, identity_key, blinded_key, blinding_nonce):
from cryptography.hazmat.primitives import serialization
+ from stem.util import ed25519
identity_key_bytes = identity_key.private_bytes(
encoding = serialization.Encoding.Raw,
@@ -1318,28 +1318,28 @@ def _blinded_sign(msg, identity_key, blinded_key, blinding_nonce):
# pad private identity key into an ESK (encrypted secret key)
- h = slow_ed25519.H(identity_key_bytes)
- a = 2 ** (slow_ed25519.b - 2) + sum(2 ** i * slow_ed25519.bit(h, i) for i in range(3, slow_ed25519.b - 2))
- k = b''.join([h[i:i + 1] for i in range(slow_ed25519.b // 8, slow_ed25519.b // 4)])
- esk = slow_ed25519.encodeint(a) + k
+ h = ed25519.H(identity_key_bytes)
+ a = 2 ** (ed25519.b - 2) + sum(2 ** i * ed25519.bit(h, i) for i in range(3, ed25519.b - 2))
+ k = b''.join([h[i:i + 1] for i in range(ed25519.b // 8, ed25519.b // 4)])
+ esk = ed25519.encodeint(a) + k
# blind the ESK with this nonce
- mult = 2 ** (slow_ed25519.b - 2) + sum(2 ** i * slow_ed25519.bit(blinding_nonce, i) for i in range(3, slow_ed25519.b - 2))
- s = slow_ed25519.decodeint(esk[:32])
- s_prime = (s * mult) % slow_ed25519.l
+ mult = 2 ** (ed25519.b - 2) + sum(2 ** i * ed25519.bit(blinding_nonce, i) for i in range(3, ed25519.b - 2))
+ s = ed25519.decodeint(esk[:32])
+ s_prime = (s * mult) % ed25519.l
k = esk[32:]
- k_prime = slow_ed25519.H(b'Derive temporary signing key hash input' + k)[:32]
- blinded_esk = slow_ed25519.encodeint(s_prime) + k_prime
+ k_prime = ed25519.H(b'Derive temporary signing key hash input' + k)[:32]
+ blinded_esk = ed25519.encodeint(s_prime) + k_prime
# finally, sign the message
- a = slow_ed25519.decodeint(blinded_esk[:32])
- r = slow_ed25519.Hint(b''.join([blinded_esk[i:i + 1] for i in range(slow_ed25519.b // 8, slow_ed25519.b // 4)]) + msg)
- R = slow_ed25519.scalarmult(slow_ed25519.B, r)
- S = (r + slow_ed25519.Hint(slow_ed25519.encodepoint(R) + blinded_key + msg) * a) % slow_ed25519.l
+ a = ed25519.decodeint(blinded_esk[:32])
+ r = ed25519.Hint(b''.join([blinded_esk[i:i + 1] for i in range(ed25519.b // 8, ed25519.b // 4)]) + msg)
+ R = ed25519.scalarmult(ed25519.B, r)
+ S = (r + ed25519.Hint(ed25519.encodepoint(R) + blinded_key + msg) * a) % ed25519.l
- return slow_ed25519.encodepoint(R) + slow_ed25519.encodeint(S)
+ return ed25519.encodepoint(R) + ed25519.encodeint(S)
# TODO: drop this alias in stem 2.x
diff --git a/stem/util/ed25519.py b/stem/util/ed25519.py
new file mode 100644
index 00000000..67b2db3c
--- /dev/null
+++ b/stem/util/ed25519.py
@@ -0,0 +1,311 @@
+# The following is copied from...
+#
+# https://github.com/pyca/ed25519
+#
+# This is under the CC0 license. For more information please see...
+#
+# https://github.com/pyca/cryptography/issues/5068
+
+
+# ed25519.py - Optimized version of the reference implementation of Ed25519
+#
+# Written in 2011? by Daniel J. Bernstein <djb(a)cr.yp.to>
+# 2013 by Donald Stufft <donald(a)stufft.io>
+# 2013 by Alex Gaynor <alex.gaynor(a)gmail.com>
+# 2013 by Greg Price <price(a)mit.edu>
+#
+# To the extent possible under law, the author(s) have dedicated all copyright
+# and related and neighboring rights to this software to the public domain
+# worldwide. This software is distributed without any warranty.
+#
+# You should have received a copy of the CC0 Public Domain Dedication along
+# with this software. If not, see
+# <http://creativecommons.org/publicdomain/zero/1.0/>.
+
+"""
+NB: This code is not safe for use with secret keys or secret data.
+The only safe use of this code is for verifying signatures on public messages.
+
+Functions for computing the public key of a secret key and for signing
+a message are included, namely publickey_unsafe and signature_unsafe,
+for testing purposes only.
+
+The root of the problem is that Python's long-integer arithmetic is
+not designed for use in cryptography. Specifically, it may take more
+or less time to execute an operation depending on the values of the
+inputs, and its memory access patterns may also depend on the inputs.
+This opens it to timing and cache side-channel attacks which can
+disclose data to an attacker. We rely on Python's long-integer
+arithmetic, so we cannot handle secrets without risking their disclosure.
+"""
+
+import hashlib
+import operator
+import sys
+
+
+__version__ = "1.0.dev0"
+
+
+# Useful for very coarse version differentiation.
+PY3 = sys.version_info[0] == 3
+
+if PY3:
+ indexbytes = operator.getitem
+ intlist2bytes = bytes
+ int2byte = operator.methodcaller("to_bytes", 1, "big")
+else:
+ int2byte = chr
+ range = xrange
+
+ def indexbytes(buf, i):
+ return ord(buf[i])
+
+ def intlist2bytes(l):
+ return b"".join(chr(c) for c in l)
+
+
+b = 256
+q = 2 ** 255 - 19
+l = 2 ** 252 + 27742317777372353535851937790883648493
+
+
+def H(m):
+ return hashlib.sha512(m).digest()
+
+
+def pow2(x, p):
+ """== pow(x, 2**p, q)"""
+ while p > 0:
+ x = x * x % q
+ p -= 1
+ return x
+
+
+def inv(z):
+ """$= z^{-1} \mod q$, for z != 0"""
+ # Adapted from curve25519_athlon.c in djb's Curve25519.
+ z2 = z * z % q # 2
+ z9 = pow2(z2, 2) * z % q # 9
+ z11 = z9 * z2 % q # 11
+ z2_5_0 = (z11 * z11) % q * z9 % q # 31 == 2^5 - 2^0
+ z2_10_0 = pow2(z2_5_0, 5) * z2_5_0 % q # 2^10 - 2^0
+ z2_20_0 = pow2(z2_10_0, 10) * z2_10_0 % q # ...
+ z2_40_0 = pow2(z2_20_0, 20) * z2_20_0 % q
+ z2_50_0 = pow2(z2_40_0, 10) * z2_10_0 % q
+ z2_100_0 = pow2(z2_50_0, 50) * z2_50_0 % q
+ z2_200_0 = pow2(z2_100_0, 100) * z2_100_0 % q
+ z2_250_0 = pow2(z2_200_0, 50) * z2_50_0 % q # 2^250 - 2^0
+ return pow2(z2_250_0, 5) * z11 % q # 2^255 - 2^5 + 11 = q - 2
+
+
+d = -121665 * inv(121666) % q
+I = pow(2, (q - 1) // 4, q)
+
+
+def xrecover(y):
+ xx = (y * y - 1) * inv(d * y * y + 1)
+ x = pow(xx, (q + 3) // 8, q)
+
+ if (x * x - xx) % q != 0:
+ x = (x * I) % q
+
+ if x % 2 != 0:
+ x = q-x
+
+ return x
+
+
+By = 4 * inv(5)
+Bx = xrecover(By)
+B = (Bx % q, By % q, 1, (Bx * By) % q)
+ident = (0, 1, 1, 0)
+
+
+def edwards_add(P, Q):
+ # This is formula sequence 'addition-add-2008-hwcd-3' from
+ # http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
+ (x1, y1, z1, t1) = P
+ (x2, y2, z2, t2) = Q
+
+ a = (y1-x1)*(y2-x2) % q
+ b = (y1+x1)*(y2+x2) % q
+ c = t1*2*d*t2 % q
+ dd = z1*2*z2 % q
+ e = b - a
+ f = dd - c
+ g = dd + c
+ h = b + a
+ x3 = e*f
+ y3 = g*h
+ t3 = e*h
+ z3 = f*g
+
+ return (x3 % q, y3 % q, z3 % q, t3 % q)
+
+
+def edwards_double(P):
+ # This is formula sequence 'dbl-2008-hwcd' from
+ # http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html
+ (x1, y1, z1, t1) = P
+
+ a = x1*x1 % q
+ b = y1*y1 % q
+ c = 2*z1*z1 % q
+ # dd = -a
+ e = ((x1+y1)*(x1+y1) - a - b) % q
+ g = -a + b # dd + b
+ f = g - c
+ h = -a - b # dd - b
+ x3 = e*f
+ y3 = g*h
+ t3 = e*h
+ z3 = f*g
+
+ return (x3 % q, y3 % q, z3 % q, t3 % q)
+
+
+def scalarmult(P, e):
+ if e == 0:
+ return ident
+ Q = scalarmult(P, e // 2)
+ Q = edwards_double(Q)
+ if e & 1:
+ Q = edwards_add(Q, P)
+ return Q
+
+
+# Bpow[i] == scalarmult(B, 2**i)
+Bpow = []
+
+
+def make_Bpow():
+ P = B
+ for i in range(253):
+ Bpow.append(P)
+ P = edwards_double(P)
+make_Bpow()
+
+
+def scalarmult_B(e):
+ """
+ Implements scalarmult(B, e) more efficiently.
+ """
+ # scalarmult(B, l) is the identity
+ e = e % l
+ P = ident
+ for i in range(253):
+ if e & 1:
+ P = edwards_add(P, Bpow[i])
+ e = e // 2
+ assert e == 0, e
+ return P
+
+
+def encodeint(y):
+ bits = [(y >> i) & 1 for i in range(b)]
+ return b''.join([
+ int2byte(sum([bits[i * 8 + j] << j for j in range(8)]))
+ for i in range(b//8)
+ ])
+
+
+def encodepoint(P):
+ (x, y, z, t) = P
+ zi = inv(z)
+ x = (x * zi) % q
+ y = (y * zi) % q
+ bits = [(y >> i) & 1 for i in range(b - 1)] + [x & 1]
+ return b''.join([
+ int2byte(sum([bits[i * 8 + j] << j for j in range(8)]))
+ for i in range(b // 8)
+ ])
+
+
+def bit(h, i):
+ return (indexbytes(h, i // 8) >> (i % 8)) & 1
+
+
+def publickey_unsafe(sk):
+ """
+ Not safe to use with secret keys or secret data.
+
+ See module docstring. This function should be used for testing only.
+ """
+ h = H(sk)
+ a = 2 ** (b - 2) + sum(2 ** i * bit(h, i) for i in range(3, b - 2))
+ A = scalarmult_B(a)
+ return encodepoint(A)
+
+
+def Hint(m):
+ h = H(m)
+ return sum(2 ** i * bit(h, i) for i in range(2 * b))
+
+
+def signature_unsafe(m, sk, pk):
+ """
+ Not safe to use with secret keys or secret data.
+
+ See module docstring. This function should be used for testing only.
+ """
+ h = H(sk)
+ a = 2 ** (b - 2) + sum(2 ** i * bit(h, i) for i in range(3, b - 2))
+ r = Hint(
+ intlist2bytes([indexbytes(h, j) for j in range(b // 8, b // 4)]) + m
+ )
+ R = scalarmult_B(r)
+ S = (r + Hint(encodepoint(R) + pk + m) * a) % l
+ return encodepoint(R) + encodeint(S)
+
+
+def isoncurve(P):
+ (x, y, z, t) = P
+ return (z % q != 0 and
+ x*y % q == z*t % q and
+ (y*y - x*x - z*z - d*t*t) % q == 0)
+
+
+def decodeint(s):
+ return sum(2 ** i * bit(s, i) for i in range(0, b))
+
+
+def decodepoint(s):
+ y = sum(2 ** i * bit(s, i) for i in range(0, b - 1))
+ x = xrecover(y)
+ if x & 1 != bit(s, b-1):
+ x = q - x
+ P = (x, y, 1, (x*y) % q)
+ if not isoncurve(P):
+ raise ValueError("decoding point that is not on curve")
+ return P
+
+
+class SignatureMismatch(Exception):
+ pass
+
+
+def checkvalid(s, m, pk):
+ """
+ Not safe to use when any argument is secret.
+
+ See module docstring. This function should be used only for
+ verifying public signatures of public messages.
+ """
+ if len(s) != b // 4:
+ raise ValueError("signature length is wrong")
+
+ if len(pk) != b // 8:
+ raise ValueError("public-key length is wrong")
+
+ R = decodepoint(s[:b // 8])
+ A = decodepoint(pk)
+ S = decodeint(s[b // 8:b // 4])
+ h = Hint(encodepoint(R) + pk + m)
+
+ (x1, y1, z1, t1) = P = scalarmult_B(S)
+ (x2, y2, z2, t2) = Q = edwards_add(R, scalarmult(A, h))
+
+ if (not isoncurve(P) or not isoncurve(Q) or
+ (x1*z2 - x2*z1) % q != 0 or (y1*z2 - y2*z1) % q != 0):
+ raise SignatureMismatch("signature does not pass verification")
diff --git a/stem/util/slow_ed25519.py b/stem/util/slow_ed25519.py
deleted file mode 100644
index b23bf57c..00000000
--- a/stem/util/slow_ed25519.py
+++ /dev/null
@@ -1,171 +0,0 @@
-# Public domain ed25519 implementation from...
-#
-# http://ed25519.cr.yp.to/python/ed25519.py
-#
-# It isn't constant-time. Don't use it except for testing. Also, see
-# warnings about how very slow it is. Only use this for generating
-# test vectors, I'd suggest.
-#
-# Cryptography replacement of this is pending...
-#
-# https://github.com/pyca/cryptography/issues/5068
-
-import hashlib
-import stem.prereq
-
-b = 256
-q = 2 ** 255 - 19
-l = 2 ** 252 + 27742317777372353535851937790883648493
-
-
-def int_to_byte(val):
- """
- Convert an integer to its byte value in an interpreter agnostic way.
- """
-
- return bytes([val]) if stem.prereq.is_python_3() else chr(val)
-
-
-def H(m):
- return hashlib.sha512(m).digest()
-
-
-def expmod(b, e, m):
- if e == 0:
- return 1
-
- t = expmod(b, e // 2, m) ** 2 % m
-
- if e & 1:
- t = (t * b) % m
-
- return t
-
-
-def inv(x):
- return expmod(x, q - 2, q)
-
-
-d = -121665 * inv(121666)
-I = expmod(2, (q - 1) // 4, q)
-
-
-def xrecover(y):
- xx = (y * y - 1) * inv(d * y * y + 1)
- x = expmod(xx, (q + 3) // 8, q)
-
- if (x * x - xx) % q != 0:
- x = (x * I) % q
-
- if x % 2 != 0:
- x = q - x
-
- return x
-
-
-By = 4 * inv(5)
-Bx = xrecover(By)
-B = [Bx % q, By % q]
-
-
-def edwards(P, Q):
- x1 = P[0]
- y1 = P[1]
- x2 = Q[0]
- y2 = Q[1]
- x3 = (x1 * y2 + x2 * y1) * inv(1 + d * x1 * x2 * y1 * y2)
- y3 = (y1 * y2 + x1 * x2) * inv(1 - d * x1 * x2 * y1 * y2)
- return [x3 % q, y3 % q]
-
-
-def scalarmult(P, e):
- if e == 0:
- return [0, 1]
-
- Q = scalarmult(P, e // 2)
- Q = edwards(Q, Q)
-
- if e & 1:
- Q = edwards(Q, P)
-
- return Q
-
-
-def encodeint(y):
- bits = [(y >> i) & 1 for i in range(b)]
- return b''.join([int_to_byte(sum([bits[i * 8 + j] << j for j in range(8)])) for i in range(b // 8)])
-
-
-def encodepoint(P):
- x = P[0]
- y = P[1]
- bits = [(y >> i) & 1 for i in range(b - 1)] + [x & 1]
-
- return b''.join([int_to_byte(sum([bits[i * 8 + j] << j for j in range(8)])) for i in range(b // 8)])
-
-
-def bit(h, i):
- return (ord(h[i // 8:i // 8 + 1]) >> (i % 8)) & 1
-
-
-def publickey(sk):
- h = H(sk)
- a = 2 ** (b - 2) + sum(2 ** i * bit(h, i) for i in range(3, b - 2))
- A = scalarmult(B, a)
-
- return encodepoint(A)
-
-
-def Hint(m):
- h = H(m)
- return sum(2 ** i * bit(h, i) for i in range(2 * b))
-
-
-def signature(m, sk, pk):
- h = H(sk)
- a = 2 ** (b - 2) + sum(2 ** i * bit(h, i) for i in range(3, b - 2))
- r = Hint(b''.join([h[i:i + 1] for i in range(b // 8, b // 4)]) + m)
- R = scalarmult(B, r)
- S = (r + Hint(encodepoint(R) + pk + m) * a) % l
- return encodepoint(R) + encodeint(S)
-
-
-def isoncurve(P):
- x = P[0]
- y = P[1]
- return (-x * x + y * y - 1 - d * x * x * y * y) % q == 0
-
-
-def decodeint(s):
- return sum(2 ** i * bit(s, i) for i in range(0, b))
-
-
-def decodepoint(s):
- y = sum(2 ** i * bit(s, i) for i in range(0, b - 1))
- x = xrecover(y)
-
- if x & 1 != bit(s, b - 1):
- x = q - x
-
- P = [x, y]
-
- if not isoncurve(P):
- raise Exception('decoding point that is not on curve')
-
- return P
-
-
-def checkvalid(s, m, pk):
- if len(s) != b // 4:
- raise Exception('signature length is wrong')
-
- if len(pk) != b // 8:
- raise Exception('public-key length is wrong')
-
- R = decodepoint(s[0:b // 8])
- A = decodepoint(pk)
- S = decodeint(s[b // 8:b // 4])
- h = Hint(encodepoint(R) + pk + m)
-
- if scalarmult(B, S) != edwards(R, scalarmult(A, h)):
- raise Exception('signature does not pass verification')
diff --git a/stem/util/test_tools.py b/stem/util/test_tools.py
index 03741d98..36c88f6a 100644
--- a/stem/util/test_tools.py
+++ b/stem/util/test_tools.py
@@ -455,6 +455,7 @@ def stylistic_issues(paths, check_newlines = False, check_exception_keyword = Fa
ignore_rules = []
ignore_for_file = []
+ ignore_all_for_files = []
for rule in CONFIG['pycodestyle.ignore'] + CONFIG['pep8.ignore']:
if '=>' in rule:
@@ -463,6 +464,8 @@ def stylistic_issues(paths, check_newlines = False, check_exception_keyword = Fa
if ':' in rule_entry:
rule, code = rule_entry.split(':', 1)
ignore_for_file.append((path.strip(), rule.strip(), code.strip()))
+ elif rule_entry.strip() == '*':
+ ignore_all_for_files.append(path.strip())
else:
ignore_rules.append(rule)
@@ -471,6 +474,10 @@ def stylistic_issues(paths, check_newlines = False, check_exception_keyword = Fa
if path.endswith(ignored_path) and ignored_rule == rule and code.strip().startswith(ignored_code):
return True
+ for ignored_path in ignore_all_for_files:
+ if path.endswith(ignored_path):
+ return True
+
return False
if is_pycodestyle_available():
@@ -488,6 +495,10 @@ def stylistic_issues(paths, check_newlines = False, check_exception_keyword = Fa
is_block_comment = False
+ for ignored_path in ignore_all_for_files:
+ if filename.endswith(ignored_path):
+ return
+
for index, line in enumerate(lines):
content = line.split('#', 1)[0].strip()
diff --git a/test/settings.cfg b/test/settings.cfg
index 5443df41..2e7b7a80 100644
--- a/test/settings.cfg
+++ b/test/settings.cfg
@@ -169,6 +169,8 @@ pycodestyle.ignore E127
pycodestyle.ignore E131
pycodestyle.ignore E722
+pycodestyle.ignore stem/util/ed25519.py => *
+
pycodestyle.ignore stem/__init__.py => E402: import stem.util.connection
pycodestyle.ignore stem/descriptor/__init__.py => E402: import stem.descriptor.bandwidth_file
pycodestyle.ignore stem/descriptor/__init__.py => E402: import stem.descriptor.extrainfo_descriptor
@@ -177,8 +179,6 @@ pycodestyle.ignore stem/descriptor/__init__.py => E402: import stem.descriptor.m
pycodestyle.ignore stem/descriptor/__init__.py => E402: import stem.descriptor.networkstatus
pycodestyle.ignore stem/descriptor/__init__.py => E402: import stem.descriptor.server_descriptor
pycodestyle.ignore stem/descriptor/__init__.py => E402: import stem.descriptor.tordnsel
-pycodestyle.ignore stem/util/slow_ed25519.py => E741: l = 2 ** 252 + 27742317777372353535851937790883648493
-pycodestyle.ignore stem/util/slow_ed25519.py => E741: I = expmod(2, (q - 1) // 4, q)
pycodestyle.ignore test/unit/util/connection.py => W291: _tor tor 15843 10 pipe 0x0 state:
pycodestyle.ignore test/unit/util/connection.py => W291: _tor tor 15843 11 pipe 0x0 state:
diff --git a/test/unit/descriptor/hidden_service_v3.py b/test/unit/descriptor/hidden_service_v3.py
index 715a2b65..cb1e9c68 100644
--- a/test/unit/descriptor/hidden_service_v3.py
+++ b/test/unit/descriptor/hidden_service_v3.py
@@ -463,9 +463,7 @@ class TestHiddenServiceDescriptorV3(unittest.TestCase):
@test.require.ed25519_support
def test_blinding(self):
"""
- Create a descriptor with key blinding. `This takes a while
- <https://github.com/pyca/cryptography/issues/5068>`_, so we should not do
- this more than once.
+ Create a descriptor with key blinding.
"""
from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
1
0
[translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit ae635ffd59c5187f21021200da86b97d03311c4e
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 18:53:56 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
contents+ml.po | 92 ++++++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 76 insertions(+), 16 deletions(-)
diff --git a/contents+ml.po b/contents+ml.po
index e7b90f390..4006574b2 100644
--- a/contents+ml.po
+++ b/contents+ml.po
@@ -7429,11 +7429,13 @@ msgid ""
"Cross-Site Scripting (XSS) allows an attacker to add malicious functionality"
" or behavior to a website when they shouldn't have the ability to do so."
msgstr ""
+"ഒരു വെബ്സൈറ്റിലേക്ക് ക്ഷുദ്രകരമായ പ്രവർത്തനമോ പെരുമാറ്റമോ ചേർക്കാൻ "
+"ആക്രമണകാരിയെ ക്രോസ്-സൈറ്റ് സ്ക്രിപ്റ്റിംഗ് (എക്സ്എസ്എസ്) അനുവദിക്കുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### cryptographic signature"
-msgstr ""
+msgstr "### cryptographic signature"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7448,16 +7450,26 @@ msgid ""
"signatures, please see [here](https://support.torproject.org/tbb/how-to-"
"verify-signature/)."
msgstr ""
+"ഒരു ക്രിപ്റ്റോഗ്രാഫിക് സിഗ്നേച്ചർ ഒരു സന്ദേശത്തിന്റെയോ ഫയലിന്റെയോ ആധികാരികത "
+"തെളിയിക്കുന്നു. [പബ്ലിക് കീ ക്രിപ്റ്റോഗ്രഫി](#public-key-cryptography) കീ "
+"ജോഡിയുടെ സ്വകാര്യ ഭാഗം കൈവശമുള്ളയാളാണ് ഇത് സൃഷ്ടിച്ചത്, ഒപ്പം അനുബന്ധ "
+"പബ്ലിക് കീ ഉപയോഗിച്ച് ഇത് പരിശോധിക്കാൻ കഴിയും. Torproject.org ൽ നിന്ന് "
+"നിങ്ങൾ സോഫ്റ്റ്വെയർ ഡ download ൺലോഡ് ചെയ്യുകയാണെങ്കിൽ, നിങ്ങൾ അത് സിഗ്നേച്ചർ"
+" ഫയലുകളായി (.asc) കണ്ടെത്തും. ഇവ പിജിപി ഒപ്പുകളാണ്, അതിനാൽ നിങ്ങൾ ഡ "
+"download ൺലോഡുചെയ്ത ഫയൽ നിങ്ങൾക്ക് ലഭിക്കാൻ ഞങ്ങൾ ഉദ്ദേശിച്ചതാണെന്ന് "
+"സ്ഥിരീകരിക്കാൻ കഴിയും. നിങ്ങൾക്ക് ഒപ്പുകൾ എങ്ങനെ സ്ഥിരീകരിക്കാം "
+"എന്നതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക്, ദയവായി "
+"[ഇവിടെ](https://support.torproject.org/tbb/how-to-verify-signature/) കാണുക."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## D"
-msgstr ""
+msgstr "## D"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### daemon"
-msgstr ""
+msgstr "### daemon"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7465,11 +7477,13 @@ msgid ""
"A daemon is a computer program that runs as a background process, rather "
"than being under the direct control of a user."
msgstr ""
+"ഒരു ഉപയോക്താവിന്റെ നേരിട്ടുള്ള നിയന്ത്രണത്തിലല്ല, മറിച്ച് ഒരു പശ്ചാത്തല "
+"പ്രക്രിയയായി പ്രവർത്തിക്കുന്ന ഒരു കമ്പ്യൂട്ടർ പ്രോഗ്രാമാണ് ഡെമൺ."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### directory authority"
-msgstr ""
+msgstr "### directory authority"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7478,16 +7492,19 @@ msgid ""
" relays and periodically publishes a [consensus](#consensus) together with "
"the other directory authorities."
msgstr ""
+"നിലവിൽ പ്രവർത്തിക്കുന്ന റിലേകളുടെ ഒരു ലിസ്റ്റ് പരിപാലിക്കുകയും മറ്റ് "
+"ഡയറക്ടറി അധികാരികളുമായി ഒരു [സമവായം](#consensus) ആനുകാലികമായി "
+"പ്രസിദ്ധീകരിക്കുകയും ചെയ്യുന്ന ഒരു പ്രത്യേക-ഉദ്ദേശ്യ [റിലേ](#relay)."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## E"
-msgstr ""
+msgstr "## E"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### encryption"
-msgstr ""
+msgstr "### encryption"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7498,11 +7515,16 @@ msgid ""
"each [relay](#relay) decrypts one layer before passing the request on to the"
" next relay."
msgstr ""
+"ഉദ്ദേശിച്ച സ്വീകർത്താവിന് മാത്രം വായിക്കാൻ കഴിയുന്ന ഒരു രഹസ്യ കോഡിലേക്ക് ഒരു"
+" കഷണം ഡാറ്റ എടുത്ത് സ്ക്രാംബ്ലിംഗ് ചെയ്യുന്ന പ്രക്രിയ. [ടോർ](#tor-/-tor-"
+"network/-core-tor) ടോർ [സർക്യൂട്ട്](#circuit) ൽ മൂന്ന് ലെയർ എൻക്രിപ്ഷൻ "
+"ഉപയോഗിക്കുന്നു; ഓരോ [റിലേ](#relay) അടുത്ത റിലേയിലേക്ക് അഭ്യർത്ഥന "
+"കൈമാറുന്നതിന് മുമ്പ് ഒരു ലെയർ ഡീക്രിപ്റ്റ് ചെയ്യുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### end-to-end encrypted"
-msgstr ""
+msgstr "### end-to-end encrypted"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7510,11 +7532,13 @@ msgid ""
"Transmitted data which is [encrypted](#encryption) from origin to "
"destination is called end-to-end encrypted."
msgstr ""
+"[എൻക്രിപ്റ്റ് ചെയ്ത](#encryption) ഉറവിടത്തിൽ നിന്ന് ലക്ഷ്യസ്ഥാനത്തേക്ക് "
+"കൈമാറ്റം ചെയ്ത ഡാറ്റയെ എൻഡ്-ടു-എൻഡ് എൻക്രിപ്റ്റ് എന്ന് വിളിക്കുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### exit"
-msgstr ""
+msgstr "### exit"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7524,11 +7548,15 @@ msgid ""
"connecting to (website, chat service, email provider, etc..) will see the "
"[IP address](#ip-address) of the exit."
msgstr ""
+"[ടോർ സർക്യൂട്ട്](#circuit) ലെ അവസാനത്തെ [റിലേ](#relay) [ട്രാഫിക്](#traffic) "
+"പൊതു ഇന്റർനെറ്റിലേക്ക് അയയ്ക്കുന്നു. നിങ്ങൾ കണക്റ്റുചെയ്യുന്ന സേവനം "
+"(വെബ്സൈറ്റ്, ചാറ്റ് സേവനം, ഇമെയിൽ ദാതാവ് മുതലായവ) എക്സിറ്റിന്റെ [IP വിലാസ"
+"ം](#ip-address) കാണും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### ExoneraTor"
-msgstr ""
+msgstr "### ExoneraTor "
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7539,16 +7567,21 @@ msgid ""
"running on a given IP address on a given date. This service is often useful"
" when dealing with law enforcement."
msgstr ""
+"ടോർ നെറ്റ്വർക്കിന്റെ ഭാഗമായ [റിലേ](#relay) [ഐപി വിലാസങ്ങൾ](#ip-address) ഒരു"
+" ഡാറ്റാബേസ് എക്സോനെറേറ്റർ സേവനം പരിപാലിക്കുന്നു. ഒരു നിശ്ചിത തീയതിയിൽ നൽകിയ "
+"ഐപി വിലാസത്തിൽ [ടോർ](#tor-/-tor-network/-core-tor) റിലേ "
+"പ്രവർത്തിക്കുന്നുണ്ടോ എന്ന ചോദ്യത്തിന് ഇത് ഉത്തരം നൽകുന്നു. നിയമ "
+"നിർവ്വഹണവുമായി ഇടപെടുമ്പോൾ ഈ സേവനം പലപ്പോഴും ഉപയോഗപ്രദമാണ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## F"
-msgstr ""
+msgstr "## F"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### Firefox"
-msgstr ""
+msgstr "### Firefox"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7557,6 +7590,9 @@ msgid ""
"developed by the Mozilla Foundation and its subsidiary, the Mozilla "
"Corporation."
msgstr ""
+"മോസില്ല ഫൗണ്ടേഷനും അതിന്റെ അനുബന്ധ സ്ഥാപനമായ മോസില്ല കോർപ്പറേഷനും "
+"വികസിപ്പിച്ചെടുത്ത സൗജന്യ ഓപ്പൺ സോഴ്സ് [വെബ് ബ്രൗസർ](#web-browser) ആണ് "
+"മോസില്ല ഫയർഫോക്സ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7564,6 +7600,8 @@ msgid ""
"[Tor Browser](#tor-browser) is built from a modified version of Firefox ESR "
"(Extended Support Release)."
msgstr ""
+"[ടോർ ബ്രൗസർ](#tor-browser) ഫയർഫോക്സ് ഇഎസ്ആറിന്റെ (വിപുലീകൃത പിന്തുണാ "
+"പ്രകാശനം) പരിഷ്ക്കരിച്ച പതിപ്പിൽ നിന്നാണ് നിർമ്മിച്ചിരിക്കുന്നത്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7572,11 +7610,14 @@ msgid ""
"](#operating-system-os), with its mobile version (fennec) available for "
"Android."
msgstr ""
+"വിൻഡോസ്, മാകോസ്, ലിനക്സ് [ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ](#operating-system-os) "
+"എന്നിവയ്ക്കായി ഫയർഫോക്സ് ലഭ്യമാണ്, അതിന്റെ മൊബൈൽ പതിപ്പ് (ഫെന്നെക്) "
+"Android- നായി ലഭ്യമാണ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### firewall"
-msgstr ""
+msgstr "### firewall"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7590,11 +7631,21 @@ msgid ""
"network/-core-tor) because their firewall blocks Tor connections. You can "
"reconfigure or disable your firewall and restart Tor to test this."
msgstr ""
+"ഇൻകമിംഗ്, ഔട്ട്ഗോയിംഗ് നെറ്റ്വർക്ക് [ട്രാഫിക്](#traffic) നിരീക്ഷിക്കുകയും "
+"നിയന്ത്രിക്കുകയും ചെയ്യുന്ന ഒരു നെറ്റ്വർക്ക് സുരക്ഷാ സംവിധാനമാണ് ഫയർവാൾ. ഈ "
+"ട്രാഫിക് ഫിൽട്ടർ മുൻകൂട്ടി നിശ്ചയിച്ച നിയമങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ഒരു"
+" ഫയർവാൾ സാധാരണയായി വിശ്വസനീയവും സുരക്ഷിതവുമായ ആന്തരിക നെറ്റ്വർക്കിനും "
+"പുറത്തുള്ള മറ്റൊരു നെറ്റ്വർക്കിനുമിടയിൽ ഒരു തടസ്സം സ്ഥാപിക്കുന്നു, എന്നാൽ "
+"ഇത് [സെൻസർഷിപ്പ്](#network-censorship) എന്ന അർത്ഥത്തിൽ ഉള്ളടക്ക ഫിൽട്ടറായി "
+"ഉപയോഗിക്കാം. ചില സമയങ്ങളിൽ ആളുകൾക്ക് [ടോർ](#tor-/-tor-network/-core-tor) "
+"കണക്റ്റുചെയ്യുന്നതിൽ പ്രശ്നമുണ്ട്, കാരണം അവരുടെ ഫയർവാൾ ടോർ കണക്ഷനുകളെ "
+"തടയുന്നു. നിങ്ങളുടെ ഫയർവാൾ വീണ്ടും ക്രമീകരിക്കാനോ പ്രവർത്തനരഹിതമാക്കാനോ ഇത് "
+"പരീക്ഷിക്കാൻ ടോർ പുനരാരംഭിക്കാനും കഴിയും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### Flash Player"
-msgstr ""
+msgstr "### Flash Player"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7605,11 +7656,17 @@ msgid ""
"services that use Flash also offer an HTML5 alternative, which should work "
"in the Tor Browser."
msgstr ""
+"ഓഡിയോ, വീഡിയോ ഉള്ളടക്കം കാണുന്നതിന് ഇന്റർനെറ്റിനായുള്ള "
+"[അപ്ലിക്കേഷനുകൾ](#app) ഒരു [ബ്രൗസർ പ്ലഗിൻ](#add-on-extension-or-plugin) ആണ് "
+"ഫ്ലാഷ് പ്ലെയർ. [ടോർ ബ്രൗസർ](#tor-browser) സുരക്ഷിതമല്ലാത്തതിനാൽ ഫ്ലാഷ് "
+"പ്രവർത്തിപ്പിക്കാൻ നിങ്ങൾ ഒരിക്കലും പ്രാപ്തമാക്കരുത്. ഫ്ലാഷ് ഉപയോഗിക്കുന്ന "
+"പല സേവനങ്ങളും ഒരു HTML5 ബദൽ വാഗ്ദാനം ചെയ്യുന്നു, അത് ടോർ ബ്രൗസറിൽ "
+"പ്രവർത്തിക്കും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### fte"
-msgstr ""
+msgstr "### fte"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7617,16 +7674,19 @@ msgid ""
"FTE (format-transforming encryption) is a pluggable transport that disguises"
" [Tor traffic](#traffic) as ordinary web (HTTP) traffic."
msgstr ""
+"[ടോർ ട്രാഫിക്](#traffic) സാധാരണ വെബ് (എച്ച്ടിടിപി) ട്രാഫിക്കായി വേഷംമാറുന്ന "
+"പ്ലഗ് ചെയ്യാവുന്ന ഒരു ഗതാഗതമാണ് എഫ്ടിഇ (ഫോർമാറ്റ്-ട്രാൻസ്ഫോർമിംഗ് "
+"എൻക്രിപ്ഷൻ)."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## G"
-msgstr ""
+msgstr "## G"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### GetTor"
-msgstr ""
+msgstr "### GetTor"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
1
0
[translation/tbmanual-contentspot] https://gitweb.torproject.org/translation.git/commit/?h=tbmanual-contentspot
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit 181c5aa7cb26a4562c144221e8196da06e3a9c2c
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 18:50:20 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=tbmanual-contentspot
---
contents+pt-BR.po | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/contents+pt-BR.po b/contents+pt-BR.po
index c8ee690f4..0533586cf 100644
--- a/contents+pt-BR.po
+++ b/contents+pt-BR.po
@@ -903,7 +903,7 @@ msgstr ""
#: https//tb-manual.torproject.org/bridges/
#: (content/bridges/contents+en.lrtopic.body)
msgid "### GETTING BRIDGE ADDRESSES"
-msgstr ""
+msgstr "### Obtendo endereços das pontes"
#: https//tb-manual.torproject.org/bridges/
#: (content/bridges/contents+en.lrtopic.body)
@@ -922,6 +922,8 @@ msgstr "* Visitar https://bridges.torproject.org/ e seguir as instruções, ou"
#: (content/bridges/contents+en.lrtopic.body)
msgid "* Email bridges(a)torproject.org from a Gmail, or Riseup email address"
msgstr ""
+"* Mande um e-mail para bridges(a)torproject.org a partir de um e-mail Gmail ou"
+" Riseup"
#: https//tb-manual.torproject.org/bridges/
#: (content/bridges/contents+en.lrtopic.body)
1
0
[translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit e08f94ff9dcb8440eda402dfff185def02c2775f
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 18:23:50 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
contents+ml.po | 290 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 239 insertions(+), 51 deletions(-)
diff --git a/contents+ml.po b/contents+ml.po
index d3492435c..e7b90f390 100644
--- a/contents+ml.po
+++ b/contents+ml.po
@@ -6476,6 +6476,9 @@ msgid ""
"The lifecycle of a new relay is explained in more depth in [this blog "
"post](https://blog.torproject.org/blog/lifecycle-of-a-new-relay)."
msgstr ""
+"ഒരു പുതിയ റിലേയുടെ ജീവിതചക്രം [ഈ ബ്ലോഗ് "
+"പോസ്റ്റിൽ](https://blog.torproject.org/blog/lifecycle-of-a-new-relay) കൂടുതൽ"
+" ആഴത്തിൽ വിശദീകരിച്ചിരിക്കുന്നു."
#: https//support.torproject.org/operators/why-isnt-my-relay-being-used-more/
#: (content/operators/why-isnt-my-relay-being-used-more/contents+en.lrquestion.description)
@@ -6484,11 +6487,14 @@ msgid ""
"asking on the [tor-relays list](https://lists.torproject.org/cgi-"
"bin/mailman/listinfo/tor-relays/)."
msgstr ""
+"നിങ്ങൾ കുറച്ച് കാലമായി ഒരു റിലേ പ്രവർത്തിപ്പിക്കുകയും ഇപ്പോഴും "
+"പ്രശ്നങ്ങളുണ്ടെങ്കിൽ [ടോർ-റിലേകളുടെ പട്ടിക](https://lists.torproject.org"
+"/cgi-bin/mailman/listinfo/tor-relays/) ചോദിക്കാൻ ശ്രമിക്കുക."
#: https//support.torproject.org/operators/wrong-ip/
#: (content/operators/wrong-ip/contents+en.lrquestion.title)
msgid "My relay is picking the wrong IP address."
-msgstr ""
+msgstr "എന്റെ റിലേ തെറ്റായ ഐപി വിലാസം തിരഞ്ഞെടുക്കുന്നു."
#: https//support.torproject.org/operators/wrong-ip/
#: (content/operators/wrong-ip/contents+en.lrquestion.description)
@@ -6497,6 +6503,10 @@ msgid ""
" resolving that hostname. Often people have old entries in their /etc/hosts "
"file that point to old IP addresses."
msgstr ""
+"കമ്പ്യൂട്ടറിന്റെ ഹോസ്റ്റ്നാമം ആവശ്യപ്പെട്ടുകൊണ്ട് ടോർ അതിന്റെ ഐപി വിലാസം "
+"ഊഹിക്കുന്നു, തുടർന്ന് ആ ഹോസ്റ്റ്നാമം പരിഹരിക്കുന്നു. മിക്കപ്പോഴും ആളുകൾക്ക് "
+"അവരുടെ /etc/hosts ഫയലിൽ പഴയ എൻട്രികൾ ഉണ്ട്, അത് പഴയ IP വിലാസങ്ങളിലേക്ക് "
+"പോയിന്റുചെയ്യുന്നു."
#: https//support.torproject.org/operators/wrong-ip/
#: (content/operators/wrong-ip/contents+en.lrquestion.description)
@@ -6506,6 +6516,10 @@ msgid ""
"only has an internal IP address, see the following Support entry on dynamic "
"IP addresses."
msgstr ""
+"അത് പരിഹരിച്ചില്ലെങ്കിൽ, നിങ്ങൾ തിരഞ്ഞെടുക്കേണ്ട ഐപി വ്യക്തമാക്കാൻ "
+"\"വിലാസം\" കോൺഫിഗറേഷൻ ഓപ്ഷൻ ഉപയോഗിക്കണം. നിങ്ങളുടെ കമ്പ്യൂട്ടർ ഒരു നാറ്റിനു "
+"പിന്നിലാണെങ്കിൽ അതിന് ഒരു ആന്തരിക ഐപി വിലാസം മാത്രമേ ഉള്ളൂവെങ്കിൽ, ഡൈനാമിക് "
+"ഐപി വിലാസങ്ങളിൽ ഇനിപ്പറയുന്ന പിന്തുണ എൻട്രി കാണുക."
#: https//support.torproject.org/operators/wrong-ip/
#: (content/operators/wrong-ip/contents+en.lrquestion.description)
@@ -6514,6 +6528,9 @@ msgid ""
"\"OutboundBindAddress\" so external connections come from the IP you intend "
"to present to the world."
msgstr ""
+"കൂടാതെ, നിങ്ങൾക്ക് ധാരാളം വിലാസങ്ങളുണ്ടെങ്കിൽ, \"ഔട്ട്ബൗണ്ട് ബൈൻഡ് അഡ്രസ്\""
+" സജ്ജീകരിക്കാനും നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം, അതിനാൽ നിങ്ങൾ ലോകത്തിന് മുന്നിൽ "
+"അവതരിപ്പിക്കാൻ ഉദ്ദേശിക്കുന്ന ഐപിയിൽ നിന്നാണ് ബാഹ്യ കണക്ഷനുകൾ വരുന്നത്."
#: https//support.torproject.org/onionservices/onionservices-1/
#: (content/onionservices/onionservices-1/contents+en.lrquestion.title)
@@ -6521,6 +6538,9 @@ msgid ""
"I've heard about websites that are only accessible over Tor. What are these "
"websites, and how can I access them?"
msgstr ""
+"ടോറിലൂടെ മാത്രം ആക്സസ് ചെയ്യാവുന്ന വെബ്സൈറ്റുകളെക്കുറിച്ച് ഞാൻ "
+"കേട്ടിട്ടുണ്ട്. എന്താണ് ഈ വെബ്സൈറ്റുകൾ, എനിക്ക് അവ എങ്ങനെ ആക്സസ് ചെയ്യാൻ "
+"കഴിയും?"
#: https//support.torproject.org/onionservices/onionservices-1/
#: (content/onionservices/onionservices-1/contents+en.lrquestion.description)
@@ -6528,6 +6548,8 @@ msgid ""
"Websites that are only accessible over Tor are called \"onions\" and end in "
"the TLD .onion."
msgstr ""
+"ടോറിലൂടെ മാത്രം ആക്സസ് ചെയ്യാവുന്ന വെബ്സൈറ്റുകളെ \"ഉള്ളി\" എന്ന് "
+"വിളിക്കുകയും ടിഎൽഡിയിൽ അവസാനിക്കുകയും ചെയ്യുന്നു .ഓനിയൻ."
#: https//support.torproject.org/onionservices/onionservices-1/
#: (content/onionservices/onionservices-1/contents+en.lrquestion.description)
@@ -6535,11 +6557,14 @@ msgid ""
"For example, the DuckDuckGo onion is "
"[https://3g2upl4pq6kufc4m.onion](https://3g2upl4pq6kufc4m.onion)."
msgstr ""
+"ഉദാഹരണത്തിന്, ഡക്ക്ഡക്ക്ഗോ ഉള്ളി "
+"[https://3g2upl4pq6kufc4m.onion](https://3g2upl4pq6kufc4m.onion) ആണ്."
#: https//support.torproject.org/onionservices/onionservices-1/
#: (content/onionservices/onionservices-1/contents+en.lrquestion.description)
msgid "You can access these websites by using Tor Browser."
msgstr ""
+"ടോർ ബ്രൗസർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഈ വെബ്സൈറ്റുകൾ ആക്സസ് ചെയ്യാൻ കഴിയും."
#: https//support.torproject.org/onionservices/onionservices-1/
#: (content/onionservices/onionservices-1/contents+en.lrquestion.description)
@@ -6547,11 +6572,13 @@ msgid ""
"The addresses must be shared with you by the website host, as onions are not"
" indexed in search engines in the typical way that vanilla websites are."
msgstr ""
+"വാനില വെബ്സൈറ്റുകളുടെ സാധാരണ രീതിയിൽ സെർച്ച് എഞ്ചിനുകളിൽ ഉള്ളി "
+"സൂചികയിലാക്കാത്തതിനാൽ വിലാസങ്ങൾ വെബ്സൈറ്റ് ഹോസ്റ്റ് നിങ്ങളുമായി പങ്കിടണം."
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.title)
msgid "What is a .onion or what are onion services?"
-msgstr ""
+msgstr "എന്താണ് .onion അല്ലെങ്കിൽ എന്താണ് ഉള്ളി സേവനങ്ങൾ?"
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
@@ -6559,6 +6586,8 @@ msgid ""
"Onion services allow people to browse but also to publish anonymously, "
"including publishing anonymous websites."
msgstr ""
+"ഉള്ളി സേവനങ്ങൾ ആളുകളെ ബ്രൗസ് ചെയ്യാനും അജ്ഞാത വെബ്സൈറ്റുകൾ "
+"പ്രസിദ്ധീകരിക്കുന്നതുൾപ്പെടെ അജ്ഞാതമായി പ്രസിദ്ധീകരിക്കാനും അനുവദിക്കുന്നു."
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
@@ -6571,6 +6600,13 @@ msgid ""
"[Facebook](https://www.facebook.com/notes/protect-the-graph/making-"
"connections-to-facebook-more-secure/1526085754298237/)."
msgstr ""
+"മെറ്റാഡാറ്റ രഹിത ചാറ്റിനും ഫയൽ പങ്കിടലിനും ഉള്ളി സേവനങ്ങളെ "
+"ആശ്രയിച്ചിരിക്കുന്നു, [സെക്യുർ ഡ്രോപ്പ്](https://securedrop.org/) അല്ലെങ്കിൽ"
+" [ജൂനിയർ ഷെയർ](https://onionshare.org/) പോലുള്ള മാധ്യമപ്രവർത്തകരും അവരുടെ "
+"ഉറവിടങ്ങളും തമ്മിലുള്ള സുരക്ഷിതമായ ഇടപെടൽ. ), സുരക്ഷിതമായ സോഫ്റ്റ്വെയർ "
+"അപ്ഡേറ്റുകൾ, [Facebook](https://www.facebook.com/notes/protect-the-graph"
+"/making-connections-to-facebook-more-secure/1526085754298237/) പോലുള്ള "
+"ജനപ്രിയ വെബ്സൈറ്റുകളിൽ എത്തിച്ചേരാനുള്ള കൂടുതൽ സുരക്ഷിത മാർഗങ്ങൾ ."
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
@@ -6578,6 +6614,9 @@ msgid ""
"These services use the special-use top level domain (TLD) .onion (instead of"
" .com, .net, .org, etc..) and are only accessible through the Tor network."
msgstr ""
+"ഈ സേവനങ്ങൾ പ്രത്യേക ഉപയോഗ ടോപ്പ് ലെവൽ ഡൊമെയ്ൻ (ടിഎൽഡി) ഉപയോഗിക്കുന്നു "
+".ഓണിയൻ (.com, .net, .org, മുതലായവയ്ക്ക് പകരം) കൂടാതെ ടോർ "
+"നെറ്റ്വർക്കിലൂടെ മാത്രമേ ആക്സസ് ചെയ്യാൻ കഴിയൂ."
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
@@ -6586,11 +6625,14 @@ msgid ""
"at the URL bar an icon of a little green onion displaying the state of your "
"connection: secure and using an onion service."
msgstr ""
+"ഒരു ഉള്ളി സേവനം ഉപയോഗിക്കുന്ന ഒരു വെബ്സൈറ്റ് ആക്സസ്സുചെയ്യുമ്പോൾ, ടോർ "
+"ബ്രൗസർ നിങ്ങളുടെ കണക്ഷന്റെ അവസ്ഥ പ്രദർശിപ്പിക്കുന്ന ഒരു ചെറിയ പച്ച ഉള്ളിയുടെ"
+" ഐക്കൺ URL ബാറിൽ കാണിക്കും: സുരക്ഷിതവും ഉള്ളി സേവനം ഉപയോഗിക്കുന്നതും."
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
msgid ""
-msgstr ""
+msgstr ""
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
@@ -6598,16 +6640,19 @@ msgid ""
"And if you're accessing a website with HTTPS and onion service, it will show"
" an icon of a green onion and a padlock."
msgstr ""
+"നിങ്ങൾ എച്ച്ടിടിപിഎസും സവാള സേവനവും ഉള്ള ഒരു വെബ്സൈറ്റിലേക്ക് "
+"പ്രവേശിക്കുകയാണെങ്കിൽ, അത് പച്ച ഉള്ളിയുടെയും പാഡ്ലോക്കിന്റെയും ഐക്കൺ "
+"കാണിക്കും."
#: https//support.torproject.org/onionservices/onionservices-2/
#: (content/onionservices/onionservices-2/contents+en.lrquestion.description)
msgid ""
-msgstr ""
+msgstr ""
#: https//support.torproject.org/onionservices/onionservices-4/
#: (content/onionservices/onionservices-4/contents+en.lrquestion.title)
msgid "Does the Tor Project run any Onion Services?"
-msgstr ""
+msgstr "ടോർ പ്രോജക്റ്റ് ഏതെങ്കിലും ഉള്ളി സേവനങ്ങൾ പ്രവർത്തിപ്പിക്കുന്നുണ്ടോ?"
#: https//support.torproject.org/onionservices/onionservices-4/
#: (content/onionservices/onionservices-4/contents+en.lrquestion.description)
@@ -6615,11 +6660,13 @@ msgid ""
"Yes! A list of our Onion Services is available at "
"[onion.torproject.org](https://onion.torproject.org/)."
msgstr ""
+"അതെ! ഞങ്ങളുടെ ഉള്ളി സേവനങ്ങളുടെ ഒരു ലിസ്റ്റ് "
+"[onion.torproject.org](https://onion.torproject.org/) ൽ ലഭ്യമാണ്."
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.title)
msgid "What do the different onion icons in the address bar mean?"
-msgstr ""
+msgstr "വിലാസ ബാറിലെ വ്യത്യസ്ത ഉള്ളി ഐക്കണുകൾ എന്താണ് അർത്ഥമാക്കുന്നത്?"
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
@@ -6627,16 +6674,18 @@ msgid ""
"When browsing an Onion Service, Tor Browser displays different onion icons "
"in the address bar indicating the security of the current webpage."
msgstr ""
+"ഒരു ഉള്ളി സേവനം ബ്രൗസുചെയ്യുമ്പോൾ, ടോർ ബ്രൗസർ നിലവിലെ വെബ്പേജിന്റെ സുരക്ഷയെ"
+" സൂചിപ്പിക്കുന്ന വിലാസ ബാറിൽ വ്യത്യസ്ത ഉള്ളി ഐക്കണുകൾ പ്രദർശിപ്പിക്കുന്നു."
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
msgid ""
-msgstr ""
+msgstr ""
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
msgid "A green onion means:"
-msgstr ""
+msgstr "പച്ച ഉള്ളി അർത്ഥമാക്കുന്നത്:"
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
@@ -6644,6 +6693,8 @@ msgid ""
"- The Onion Service is served over HTTP, or HTTPS with a self-signed "
"certificate."
msgstr ""
+"- ഉള്ളി സേവനം എച്ച്ടിടിപി അല്ലെങ്കിൽ എച്ച്ടിടിപിഎസ് വഴി സ്വയം ഒപ്പിട്ട "
+"സർട്ടിഫിക്കറ്റ് നൽകുന്നു."
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
@@ -6651,16 +6702,20 @@ msgid ""
""
msgstr ""
+""
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
msgid "A green onion with a lock means:"
-msgstr ""
+msgstr "ലോക്ക് ഉള്ള പച്ച ഉള്ളി അർത്ഥമാക്കുന്നത്:"
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
msgid "- The Onion Service is served over HTTPS with a CA-Issued certificate."
msgstr ""
+"- സിഎ-ഇഷ്യു ചെയ്ത സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് എച്ച്ടിടിപിഎസ് വഴി ഉള്ളി "
+"സേവനം നൽകുന്നു."
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
@@ -6668,6 +6723,8 @@ msgid ""
""
msgstr ""
+""
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
@@ -6680,16 +6737,18 @@ msgid ""
"- The Onion Service is served over HTTPS with a self-signed or CA-Issued "
"certificate."
msgstr ""
+"- സ്വയം ഒപ്പിട്ട അല്ലെങ്കിൽ സിഎ ഇഷ്യു ചെയ്ത സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് "
+"എച്ച്ടിടിപിഎസ് വഴി ഉള്ളി സേവനം നൽകുന്നു."
#: https//support.torproject.org/onionservices/onionservices-5/
#: (content/onionservices/onionservices-5/contents+en.lrquestion.description)
msgid "- The webpage contains subresources served over HTTP."
-msgstr ""
+msgstr "- വെബ്പേജിൽ എച്ച്ടിടിപി വഴി നൽകുന്ന ഉപ ഉറവിടങ്ങൾ അടങ്ങിയിരിക്കുന്നു."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.title)
msgid "How to Report a Bug or Give Feedback"
-msgstr ""
+msgstr "ഒരു ബഗ് എങ്ങനെ റിപ്പോർട്ടുചെയ്യാം അല്ലെങ്കിൽ ഫീഡ്ബാക്ക് നൽകാം"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6706,7 +6765,7 @@ msgstr ""
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "### Feedback template"
-msgstr ""
+msgstr "### ഫീഡ്ബാക്ക് ടെംപ്ലേറ്റ്"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6714,16 +6773,18 @@ msgid ""
"When sending us feedback or reporting a bug, please include as many of these"
" as possible:"
msgstr ""
+"ഞങ്ങൾക്ക് ഫീഡ്ബാക്ക് അയയ്ക്കുമ്പോഴോ ഒരു ബഗ് റിപ്പോർട്ടുചെയ്യുമ്പോഴോ, ഇവയിൽ"
+" പരമാവധി ഉൾപ്പെടുത്തുക:"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "* OS you are using"
-msgstr ""
+msgstr "* നിങ്ങൾ ഉപയോഗിക്കുന്ന OS"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "* Tor Browser version"
-msgstr ""
+msgstr "* ടോർ ബ്രൗസർ പതിപ്പ്"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6732,32 +6793,37 @@ msgid ""
"opened the browser, typed a url, clicked on (i) icon, then my browser "
"crashed)"
msgstr ""
+"* നിങ്ങൾ എങ്ങനെ പ്രശ്നത്തിലേക്ക് എത്തിയെന്നതിന്റെ ഘട്ടം ഘട്ടമായി, അതിനാൽ "
+"ഞങ്ങൾക്ക് ഇത് പുനർനിർമ്മിക്കാൻ കഴിയും (ഉദാ. ഞാൻ ബ്രൗസർ തുറന്നു, ഒരു url "
+"ടൈപ്പുചെയ്തു, (i) ഐക്കണിൽ ക്ലിക്കുചെയ്തു, തുടർന്ന് എന്റെ ബ്രൗസർ തകർന്നു)"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "* A screenshot of the problem"
-msgstr ""
+msgstr "* പ്രശ്നത്തിന്റെ ഒരു സ്ക്രീൻഷോട്ട്"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "* The log"
-msgstr ""
+msgstr "* ലോഗ്"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "### How to Reach Us"
-msgstr ""
+msgstr "### ഞങ്ങളെ എങ്ങനെ ബന്ധപ്പെടാം"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid ""
"There are several ways to reach us, so please use what works best for you."
msgstr ""
+"ഞങ്ങളെ സമീപിക്കാൻ നിരവധി മാർഗങ്ങളുണ്ട്, അതിനാൽ നിങ്ങൾക്ക് ഏറ്റവും "
+"അനുയോജ്യമായത് ഉപയോഗിക്കുക."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "#### Trac"
-msgstr ""
+msgstr "#### ട്രാക്ക്"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6767,16 +6833,21 @@ msgid ""
" Browser 9 related issues with the tbb-9.0-issues keyword. Tickets related "
"to our website should be added with the component \"Webpages/Website.\""
msgstr ""
+"നിങ്ങൾക്ക് [https://trac.torproject.org](https://trac.torproject.org) "
+"എന്നതിൽ ടിക്കറ്റ് ഫയൽ ചെയ്യാം. ടോർ ബ്രൗസർ 9 അനുബന്ധ പ്രശ്നങ്ങളെല്ലാം "
+"tbb-9.0- പ്രശ്ന കീവേഡ് ഉപയോഗിച്ച് ഞങ്ങൾ ട്രാക്കുചെയ്യുന്നു. ഞങ്ങളുടെ "
+"വെബ്സൈറ്റുമായി ബന്ധപ്പെട്ട ടിക്കറ്റുകൾ \"Webpages/Website\" എന്ന "
+"ഘടകത്തിനൊപ്പം ചേർക്കണം."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "#### Email"
-msgstr ""
+msgstr "#### ഇമെയിൽ"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "Send us an email to frontdesk(a)torproject.org"
-msgstr ""
+msgstr "frontdesk(a)torproject.org ലേക്ക് ഞങ്ങൾക്ക് ഒരു ഇമെയിൽ അയയ്ക്കുക"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6788,6 +6859,13 @@ msgid ""
"receive emails without subject lines, they're marked as spam and we don't "
"see them."
msgstr ""
+"നിങ്ങളുടെ ഇമെയിലിന്റെ വിഷയ വരിയിൽ, നിങ്ങൾ എന്താണ് റിപ്പോർട്ട് "
+"ചെയ്യുന്നതെന്ന് ഞങ്ങളോട് പറയുക. നിങ്ങളുടെ വിഷയം കൂടുതൽ വസ്തുനിഷ്ഠമാണ് (ഉദാ. "
+"\"കണക്ഷൻ പരാജയം\", \"വെബ്സൈറ്റിലെ ഫീഡ്ബാക്ക്\", \"ടോർ "
+"ബ്രൗസറിനെക്കുറിച്ചുള്ള ഫീഡ്ബാക്ക്,\" എനിക്ക് ഒരു പാലം ആവശ്യമാണ് \"), "
+"ഞങ്ങൾക്ക് മനസിലാക്കാനും പിന്തുടരാനും എളുപ്പമായിരിക്കും. ചിലപ്പോൾ ഞങ്ങൾ വിഷയ "
+"ലൈനുകൾ ഇല്ലാതെ ഇമെയിലുകൾ സ്വീകരിക്കുക, അവ സ്പാം എന്ന് അടയാളപ്പെടുത്തുന്നു, "
+"ഞങ്ങൾ അവ കാണുന്നില്ല."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6798,11 +6876,17 @@ msgid ""
"take us a bit longer to answer as we will need help with translation to "
"understand it."
msgstr ""
+"വേഗതയേറിയ പ്രതികരണത്തിനായി, നിങ്ങൾക്ക് കഴിയുമെങ്കിൽ ഇംഗ്ലീഷ്, സ്പാനിഷ്, "
+"കൂടാതെ / അല്ലെങ്കിൽ പോർച്ചുഗീസ് ഭാഷകളിൽ എഴുതുക. ഈ ഭാഷകളൊന്നും നിങ്ങൾക്ക് "
+"വേണ്ടി പ്രവർത്തിക്കുന്നില്ലെങ്കിൽ, നിങ്ങൾക്ക് താൽപ്പര്യമുള്ള ഏതെങ്കിലും "
+"ഭാഷയിൽ ദയവായി എഴുതുക, പക്ഷേ ഇത് മനസിലാക്കാൻ ഞങ്ങൾക്ക് വിവർത്തനത്തിന്റെ സഹായം"
+" ആവശ്യമുള്ളതിനാൽ ഉത്തരം നൽകാൻ ഞങ്ങൾക്ക് കുറച്ച് സമയമെടുക്കുമെന്ന് "
+"ഓർമ്മിക്കുക."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "#### Blog post comments"
-msgstr ""
+msgstr "#### ബ്ലോഗ് പോസ്റ്റ് അഭിപ്രായങ്ങൾ"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6811,11 +6895,15 @@ msgid ""
"feedback you want to report. If there is not a blog post related to your "
"issue, please contact us another way."
msgstr ""
+"പ്രശ്നവുമായി ബന്ധപ്പെട്ട ബ്ലോഗ് പോസ്റ്റിൽ അല്ലെങ്കിൽ നിങ്ങൾ റിപ്പോർട്ട് "
+"ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ഫീഡ്ബാക്കിൽ നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും അഭിപ്രായങ്ങൾ "
+"നൽകാം. നിങ്ങളുടെ പ്രശ്നവുമായി ബന്ധപ്പെട്ട ഒരു ബ്ലോഗ് പോസ്റ്റ് ഇല്ലെങ്കിൽ, "
+"ദയവായി ഞങ്ങളെ മറ്റൊരു രീതിയിൽ ബന്ധപ്പെടുക."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "#### IRC"
-msgstr ""
+msgstr "#### IRC"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6824,6 +6912,10 @@ msgid ""
"bugs/issues. We may not respond right away, but we do check the backlog and "
"will get back to you when we can."
msgstr ""
+"ഞങ്ങൾക്ക് ഫീഡ്ബാക്ക് നൽകാനോ ബഗുകൾ / പ്രശ്നങ്ങൾ റിപ്പോർട്ടുചെയ്യാനോ OFTC- ലെ"
+" #tor ചാനലിൽ നിങ്ങൾക്ക് ഞങ്ങളെ കണ്ടെത്താൻ കഴിയും. ഞങ്ങൾ ഉടനടി "
+"പ്രതികരിക്കില്ലായിരിക്കാം, പക്ഷേ ഞങ്ങൾ ബാക്ക്ലോഗ് പരിശോധിക്കുകയും ഞങ്ങൾക്ക്"
+" കഴിയുമ്പോൾ നിങ്ങളെ ബന്ധപ്പെടുകയും ചെയ്യും."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6835,7 +6927,7 @@ msgstr ""
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "#### Email Lists"
-msgstr ""
+msgstr "#### ഇമെയിൽ ലിസ്റ്റുകൾ"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6843,6 +6935,9 @@ msgid ""
"For reporting issues or feedback using email lists, we recommend that you do"
" on the one that is related to what you would like to report."
msgstr ""
+"ഇമെയിൽ ലിസ്റ്റുകൾ ഉപയോഗിച്ച് പ്രശ്നങ്ങൾ അല്ലെങ്കിൽ ഫീഡ്ബാക്ക് "
+"റിപ്പോർട്ടുചെയ്യുന്നതിന്, നിങ്ങൾ റിപ്പോർട്ടുചെയ്യാൻ ആഗ്രഹിക്കുന്ന "
+"കാര്യങ്ങളുമായി ബന്ധപ്പെട്ട ഒന്ന് ചെയ്യാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6851,6 +6946,9 @@ msgid ""
" developed by Tor: [tor-talk](https://lists.torproject.org/cgi-"
"bin/mailman/listinfo/tor-talk)"
msgstr ""
+"ടോർ ബ്രൗസർ, ടോർ നെറ്റ്വർക്ക് അല്ലെങ്കിൽ ടോർ വികസിപ്പിച്ച മറ്റ് "
+"പ്രോജക്റ്റുകളുമായി ബന്ധപ്പെട്ട ഫീഡ്ബാക്കിനോ പ്രശ്നങ്ങൾക്കോ: "
+"[ടോർ-ടോക്ക്](https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-talk)"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6858,6 +6956,8 @@ msgid ""
"For feedback or issues related to our websites: "
"[ux](https://lists.torproject.org/cgi-bin/mailman/listinfo/ux)"
msgstr ""
+"ഫീഡ്ബാക്കിനോ ഞങ്ങളുടെ വെബ്സൈറ്റുകളുമായി ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾക്കോ: "
+"[ux](https://lists.torproject.org/cgi-bin/mailman/listinfo/ux)"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6865,6 +6965,9 @@ msgid ""
"For feedback or issues related to running a Tor relay: [tor-"
"relays](https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays)"
msgstr ""
+"ടോർ റിലേ പ്രവർത്തിപ്പിക്കുന്നതുമായി ബന്ധപ്പെട്ട ഫീഡ്ബാക്കിനോ "
+"പ്രശ്നങ്ങൾക്കോ: [ടോർ-റിലേകൾ](https://lists.torproject.org/cgi-"
+"bin/mailman/listinfo/tor-relays)"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6873,11 +6976,15 @@ msgid ""
"[tor-community-team](https://lists.torproject.org/cgi-bin/mailman/listinfo"
"/tor-community-team)"
msgstr ""
+"ടോർ ബ്രൗസർ മാനുവൽ അല്ലെങ്കിൽ പിന്തുണാ വെബ്സൈറ്റുമായി ബന്ധപ്പെട്ട "
+"ഉള്ളടക്കത്തെക്കുറിച്ചുള്ള ഫീഡ്ബാക്കിനായി: [tor-community-"
+"team](https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-community-"
+"team)"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "### Report a security issue"
-msgstr ""
+msgstr "### ഒരു സുരക്ഷാ പ്രശ്നം റിപ്പോർട്ടുചെയ്യുക"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6885,6 +6992,9 @@ msgid ""
"If you've found a security issue in one of our projects or in our "
"infrastructure, please email tor-security(a)lists.torproject.org."
msgstr ""
+"ഞങ്ങളുടെ പ്രോജക്റ്റുകളിലൊന്നിലോ ഇൻഫ്രാസ്ട്രക്ചറിലോ നിങ്ങൾ ഒരു സുരക്ഷാ "
+"പ്രശ്നം കണ്ടെത്തിയിട്ടുണ്ടെങ്കിൽ, ദയവായി tor-security(a)lists.torproject.org "
+"എന്ന ഇമെയിൽ വിലാസത്തിലേക്ക് ഇമെയിൽ ചെയ്യുക."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6892,6 +7002,10 @@ msgid ""
"If you've found a security bug in Tor or Tor Browser, feel free to submit it"
" for our [bug bounty program](https://hackerone.com/torproject)."
msgstr ""
+"ടോർ അല്ലെങ്കിൽ ടോർ ബ്ര rowser സറിൽ നിങ്ങൾ ഒരു സുരക്ഷാ ബഗ് "
+"കണ്ടെത്തിയിട്ടുണ്ടെങ്കിൽ, ഞങ്ങളുടെ [ബഗ് ബൗണ്ടി "
+"പ്രോഗ്രാമിനായി](https://hackerone.com/torproject) സമർപ്പിക്കാൻ "
+"മടിക്കേണ്ടതില്ല."
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
@@ -6906,32 +7020,32 @@ msgstr ""
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "gpg --fingerprint tor-security(a)lists.torproject.org"
-msgstr ""
+msgstr "gpg --fingerprint tor-security(a)lists.torproject.org"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "pub 4096R/1A7BF184 2017-03-13"
-msgstr ""
+msgstr "pub 4096R/1A7BF184 2017-03-13"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "Key fingerprint = 8B90 4624 C5A2 8654 E453 9BC2 E135 A8B4 1A7B F184"
-msgstr ""
+msgstr "Key fingerprint = 8B90 4624 C5A2 8654 E453 9BC2 E135 A8B4 1A7B F184"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "uid tor-security(a)lists.torproject.org"
-msgstr ""
+msgstr "uid tor-security(a)lists.torproject.org"
#: https//support.torproject.org/misc/bug-or-feedback/
#: (content/misc/bug-or-feedback/contents+en.lrquestion.description)
msgid "sub 4096R/C00942E4 2017-03-13"
-msgstr ""
+msgstr "sub 4096R/C00942E4 2017-03-13"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.title)
msgid "Tor Glossary"
-msgstr ""
+msgstr "ടോർ ഗ്ലോസറി"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6939,16 +7053,18 @@ msgid ""
"The community team has developed this glossary of terms about and related to"
" Tor."
msgstr ""
+"ടോറിനെക്കുറിച്ചുള്ളതും ബന്ധപ്പെട്ടതുമായ പദങ്ങളുടെ ഈ ഗ്ലോസറി കമ്മ്യൂണിറ്റി "
+"ടീം വികസിപ്പിച്ചെടുത്തു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## A"
-msgstr ""
+msgstr "## A"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### add-on, extension, or plugin"
-msgstr ""
+msgstr "### ആഡ്-ഓൺ, വിപുലീകരണം അല്ലെങ്കിൽ പ്ലഗിൻ"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6956,6 +7072,8 @@ msgid ""
"Add-ons, extensions, and plugins are components that can be added to [web "
"browsers](#web-browser) to give them new features."
msgstr ""
+"ആഡ്-ഓണുകൾ, വിപുലീകരണങ്ങൾ, പ്ലഗിനുകൾ എന്നിവയ്ക്ക് പുതിയ സവിശേഷതകൾ നൽകുന്നതിന്"
+" [വെബ് ബ്രൗസറുകളിൽ] (#web-browser) ചേർക്കാവുന്ന ഘടകങ്ങളാണ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6963,6 +7081,9 @@ msgid ""
"Tor Browser comes with two add-ons installed: [NoScript](#noscript) and "
"[HTTPS Everywhere](#https-everywhere)."
msgstr ""
+"ടോർ ബ്രൗസർ രണ്ട് ആഡ്-ഓണുകൾ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്: "
+"[നോസ്ക്രിപ്റ്റ്](#noscript), [എച്ച്ടിടിപിഎസ് എല്ലായിടത്തും](#https-"
+"everywhere)."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6970,11 +7091,13 @@ msgid ""
"You should not install any additional add-ons to Tor Browser because that "
"can compromise some of its privacy features."
msgstr ""
+"ടോർ ബ്രൗസറിലേക്ക് നിങ്ങൾ അധിക ആഡ്-ഓണുകളൊന്നും ഇൻസ്റ്റാൾ ചെയ്യരുത്, കാരണം "
+"അതിന്റെ ചില സ്വകാര്യത സവിശേഷതകളിൽ വിട്ടുവീഴ്ച ചെയ്യാനാകും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### antivirus software"
-msgstr ""
+msgstr "### ആന്റിവൈറസ് സോഫ്റ്റ്വെയർ"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6982,6 +7105,8 @@ msgid ""
"An antivirus software is used to prevent, detect and remove malicious "
"software."
msgstr ""
+"ക്ഷുദ്ര സോഫ്റ്റ്വെയർ തടയുന്നതിനും കണ്ടെത്തുന്നതിനും നീക്കംചെയ്യുന്നതിനും "
+"ഒരു ആന്റിവൈറസ് സോഫ്റ്റ്വെയർ ഉപയോഗിക്കുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6989,6 +7114,8 @@ msgid ""
"Antivirus software can interfere with [Tor](#tor-/-tor-network/-core-tor) "
"running on your computer."
msgstr ""
+"ആന്റിവൈറസ് സോഫ്റ്റ്വെയറിന് നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ പ്രവർത്തിക്കുന്ന "
+"[ടോർ](#tor-/-tor-network/-core-tor) തടസ്സപ്പെടുത്താൻ കഴിയും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -6996,11 +7123,13 @@ msgid ""
"You may need to consult the documentation for your antivirus software if you"
" do not know how to allow Tor."
msgstr ""
+"ടോറിനെ എങ്ങനെ അനുവദിക്കണമെന്ന് അറിയില്ലെങ്കിൽ നിങ്ങളുടെ ആന്റിവൈറസ് "
+"സോഫ്റ്റ്വെയറിനായുള്ള ഡോക്യുമെന്റേഷൻ പരിശോധിക്കേണ്ടതുണ്ട്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### app"
-msgstr ""
+msgstr "### app"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7008,6 +7137,8 @@ msgid ""
"A web application (web app), is an application that the [client](#client) "
"runs in a [web browser](#web-browser)."
msgstr ""
+"ഒരു വെബ് ആപ്ലിക്കേഷൻ (വെബ് അപ്ലിക്കേഷൻ), [ക്ലയന്റ്](#client) ഒരു [വെബ് "
+"ബ്രൗസറിൽ](web-browser) പ്രവർത്തിക്കുന്ന ഒരു ആപ്ലിക്കേഷനാണ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7015,11 +7146,13 @@ msgid ""
"App can also refer to software that you install on mobile [operating systems"
"](#operating-system-os)."
msgstr ""
+"മൊബൈൽ [ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ](#operating-system-os) ൽ നിങ്ങൾ ഇൻസ്റ്റാൾ "
+"ചെയ്യുന്ന സോഫ്റ്റ്വെയറുകളെയും അപ്ലിക്കേഷന് റഫർ ചെയ്യാൻ കഴിയും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### Atlas"
-msgstr ""
+msgstr "### Atlas"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7027,16 +7160,18 @@ msgid ""
"Atlas is a web application to learn about currently running Tor "
"[relays](#relay)."
msgstr ""
+"നിലവിൽ പ്രവർത്തിക്കുന്ന ടോർ [റിലേകൾ](#relay) അറിയുന്നതിനുള്ള ഒരു വെബ് "
+"ആപ്ലിക്കേഷനാണ് അറ്റ്ലസ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## B"
-msgstr ""
+msgstr "## B"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### bandwidth authority"
-msgstr ""
+msgstr "### ബാൻഡ്വിഡ്ത്ത് അതോറിറ്റി"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7045,11 +7180,14 @@ msgid ""
"authorities take periodic measurements of the [relays](#relay) in the "
"[consensus](#consensus)."
msgstr ""
+"ഒരു റിലേയുടെ ത്രൂപുട്ട് നിർണ്ണയിക്കാൻ, ബാൻഡ്വിഡ്ത്ത് അതോറിറ്റികൾ എന്ന് "
+"വിളിക്കുന്ന പ്രത്യേക റിലേകൾ [സമവായം](#consensus) ലെ [റിലേകളുടെ](#relay) "
+"ആനുകാലിക അളവുകൾ എടുക്കുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### bridge"
-msgstr ""
+msgstr "### bridge"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7058,6 +7196,10 @@ msgid ""
"ordinary relays, however, they are not listed publicly, so an adversary "
"cannot identify them easily."
msgstr ""
+"സാധാരണ ടോർ [റിലേകൾ](#relay) പോലെ, പാലങ്ങൾ പ്രവർത്തിപ്പിക്കുന്നത് "
+"സന്നദ്ധപ്രവർത്തകരാണ്; എന്നിരുന്നാലും, സാധാരണ റിലേകളിൽ നിന്ന് വ്യത്യസ്തമായി "
+"അവ പൊതുവായി ലിസ്റ്റുചെയ്തിട്ടില്ല, അതിനാൽ ഒരു എതിരാളിക്ക് അവ എളുപ്പത്തിൽ "
+"തിരിച്ചറിയാൻ കഴിയില്ല."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7065,21 +7207,24 @@ msgid ""
"[Pluggable transports](#pluggable-transports) are a type of bridge that "
"helps disguise the fact that you are using Tor."
msgstr ""
+"[പ്ലഗ് ചെയ്യാവുന്ന ട്രാൻസ്പോർട്ടുകൾ](#pluggable-transports) നിങ്ങൾ ടോർ "
+"ഉപയോഗിക്കുന്നുവെന്ന വസ്തുത മറച്ചുവെക്കാൻ സഹായിക്കുന്ന ഒരു തരം പാലമാണ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### bridge authority"
-msgstr ""
+msgstr "### ബ്രിഡ്ജ് അതോറിറ്റി"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "A special-purpose relay that maintains the list of [bridges](#bridge)."
msgstr ""
+"[പാലങ്ങളുടെ](#bridge) പട്ടിക പരിപാലിക്കുന്ന ഒരു പ്രത്യേക-ഉദ്ദേശ്യ റിലേ."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### browser fingerprinting"
-msgstr ""
+msgstr "### ബ്രൗസർ വിരലടയാളം"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7087,6 +7232,9 @@ msgid ""
"Fingerprinting is the process of collecting information about a device or "
"service to make educated guesses about its identity or characteristics."
msgstr ""
+"ഫിംഗർപ്രിന്റിംഗ് എന്നത് ഒരു ഉപകരണത്തെക്കുറിച്ചോ സേവനത്തെക്കുറിച്ചോ അതിന്റെ "
+"ഐഡന്റിറ്റിയെക്കുറിച്ചോ സ്വഭാവ സവിശേഷതകളെക്കുറിച്ചോ വിദ്യാസമ്പന്നരായ ess "
+"ഹങ്ങൾ ഉണ്ടാക്കുന്നതിനുള്ള വിവരങ്ങൾ ശേഖരിക്കുന്ന പ്രക്രിയയാണ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7094,16 +7242,18 @@ msgid ""
"Unique behavior or responses can be used to identify the device or service "
"analyzed."
msgstr ""
+"വിശകലനം ചെയ്ത ഉപകരണത്തെയോ സേവനത്തെയോ തിരിച്ചറിയാൻ അദ്വിതീയ പെരുമാറ്റമോ "
+"പ്രതികരണങ്ങളോ ഉപയോഗിക്കാം."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "[Tor Browser](#tor-browser) prevents fingerprinting."
-msgstr ""
+msgstr "[ടോർ ബ്രൗസർ](#tor-browser) വിരലടയാളം തടയുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### browsing history"
-msgstr ""
+msgstr "### ബ്രൗസിംഗ് ചരിത്രം"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7111,6 +7261,9 @@ msgid ""
"A browser history is a record of requests made while using a [web browser"
"](#web-browser), and includes information like websites visited and when."
msgstr ""
+"ഒരു [വെബ് ബ്രൗസർ](#web-browser) ഉപയോഗിക്കുമ്പോൾ നടത്തിയ അഭ്യർത്ഥനകളുടെ "
+"റെക്കോർഡാണ് ബ്രൗസർ ചരിത്രം, കൂടാതെ സന്ദർശിച്ച വെബ്സൈറ്റുകൾ പോലുള്ള വിവരങ്ങൾ"
+" ഉൾപ്പെടുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7118,16 +7271,18 @@ msgid ""
"[Tor Browser](#tor-browser) deletes your browsing history after you close "
"your [session](#session)."
msgstr ""
+"[ടോർ ബ്രൗസർ](#tor-browser) നിങ്ങളുടെ [സെഷൻ](#session) അടച്ചതിനുശേഷം "
+"നിങ്ങളുടെ ബ്രൗസിംഗ് ചരിത്രം ഇല്ലാതാക്കുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "## C"
-msgstr ""
+msgstr "## C "
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### CAPTCHA"
-msgstr ""
+msgstr "### CAPTCHA"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7135,6 +7290,8 @@ msgid ""
"Captchas are a challenge-response test used in computing to determine "
"whether the user is human or not."
msgstr ""
+"ഉപയോക്താവ് മനുഷ്യനാണോ അല്ലയോ എന്ന് നിർണ്ണയിക്കാൻ കമ്പ്യൂട്ടിംഗിൽ "
+"ഉപയോഗിക്കുന്ന ഒരു ചലഞ്ച്-പ്രതികരണ പരിശോധനയാണ് ക്യാപ്ചാസ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7144,11 +7301,15 @@ msgid ""
"hard time determining whether or not those requests are coming from humans "
"or bots."
msgstr ""
+"[ടോർ](#tor-/-tor-network/-core-tor) ഉപയോക്താക്കൾക്ക് പലപ്പോഴും ക്യാപ്ചകൾ "
+"നൽകാറുണ്ട്, കാരണം ടോർ [റിലേകൾ](#relay) വളരെയധികം അഭ്യർത്ഥനകൾ നടത്തുന്നു, ചില"
+" സമയങ്ങളിൽ വെബ്സൈറ്റുകൾക്ക് ആ അഭ്യർത്ഥനകൾ ഉണ്ടോ ഇല്ലയോ എന്ന് നിർണ്ണയിക്കാൻ "
+"ബുദ്ധിമുട്ടാണ്. മനുഷ്യരിൽ നിന്നോ ബോട്ടുകളിൽ നിന്നോ വരുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### checksum"
-msgstr ""
+msgstr "### checksum"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7157,11 +7318,14 @@ msgid ""
"software without errors, the given checksum and the checksum of your "
"downloaded file will be identical."
msgstr ""
+"ഫയലുകളുടെ [ഹാഷ്](#hash) മൂല്യങ്ങളാണ് ചെക്ക്സംസ്. പിശകുകളില്ലാതെ നിങ്ങൾ "
+"സോഫ്റ്റ്വെയർ ഡൗൺലോഡ് ചെയ്തിട്ടുണ്ടെങ്കിൽ, തന്നിരിക്കുന്ന ചെക്ക്സവും ഡൗൺലോഡ് "
+"ചെയ്ത ഫയലിന്റെ ചെക്ക്സവും സമാനമായിരിക്കും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### circuit"
-msgstr ""
+msgstr "### circuit"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7175,11 +7339,20 @@ msgid ""
"service)), and never an exit node. You can view your current Tor circuit by "
"clicking on the onion button in Tor Browser."
msgstr ""
+"ക്രമരഹിതമായി തിരഞ്ഞെടുത്ത നോഡുകൾ അടങ്ങുന്ന [ക്ലയന്റുകൾ](#client) നിർമ്മിച്ച "
+"[ടോർ നെറ്റ്വർക്ക്](tor-/-tor-network/-core-tor) വഴിയുള്ള ഒരു പാത. "
+"[ബ്രിഡ്ജ്](#bridge) അല്ലെങ്കിൽ [ഗാർഡ്](#guard) ഉപയോഗിച്ച് സർക്യൂട്ട് "
+"ആരംഭിക്കുന്നു. മിക്ക സർക്യൂട്ടുകളിലും മൂന്ന് നോഡുകൾ അടങ്ങിയിരിക്കുന്നു - ഒരു"
+" ഗാർഡ് അല്ലെങ്കിൽ ബ്രിഡ്ജ്, ഒരു [മിഡിൽ റിലേ](#middle-relay), ഒരു "
+"[എക്സിറ്റ്](#exit). മിക്ക [സവാള സേവനങ്ങൾ](#onion-services) ഒരു സർക്യൂട്ടിൽ "
+"ആറ് ഹോപ്സ് ഉപയോഗിക്കുന്നു ([ഒറ്റ ഉള്ളി സേവനങ്ങൾ](#single-onion-service) "
+"ഒഴികെ), ഒരിക്കലും എക്സിറ്റ് നോഡ് ഇല്ല. ടോർ ബ്രൗസറിലെ ഉള്ളി ബട്ടണിൽ "
+"ക്ലിക്കുചെയ്ത് നിങ്ങളുടെ നിലവിലെ ടോർ സർക്യൂട്ട് കാണാൻ കഴിയും."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### client"
-msgstr ""
+msgstr "### client"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7188,11 +7361,15 @@ msgid ""
"network, typically running on behalf of one user, that routes application "
"connections over a series of [relays](#relay)."
msgstr ""
+"[ടോർ](#tor-/-tor-network/-core-tor), ഒരു ക്ലയന്റ് ടോർ നെറ്റ്വർക്കിലെ ഒരു "
+"നോഡാണ്, സാധാരണയായി ഒരു ഉപയോക്താവിന് വേണ്ടി പ്രവർത്തിക്കുന്നു, ഇത് "
+"[റിലേകളുടെ]( #relay) ഒരു ശ്രേണിയിലൂടെ അപ്ലിക്കേഷൻ കണക്ഷനുകൾ റൂട്ട് "
+"ചെയ്യുന്നു ."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### Compass"
-msgstr ""
+msgstr "### Compass"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7200,11 +7377,13 @@ msgid ""
"Compass is a web application to learn about currently running [Tor "
"relays](#relay) in bulk."
msgstr ""
+"നിലവിൽ പ്രവർത്തിക്കുന്ന [ടോർ റിലേകൾ](#relay) ബൾക്കായി അറിയുന്നതിനുള്ള ഒരു "
+"വെബ് ആപ്ലിക്കേഷനാണ് കോമ്പസ്."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### consensus"
-msgstr ""
+msgstr "### consensus"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7214,11 +7393,15 @@ msgid ""
"[clients](#client) have the same information about the [relays](#relay) that"
" make up the [Tor network](#tor-/-tor-network/-core-tor)."
msgstr ""
+"ടോർ പദങ്ങളിൽ, [ഡയറക്ടറി അതോറിറ്റികൾ](#directory-authority) മണിക്കൂറിൽ "
+"ഒരിക്കൽ സമാഹരിച്ച് വോട്ടുചെയ്ത ഒരു പ്രമാണം, എല്ലാ [ക്ലയന്റുകൾ](#client) "
+"[റിലേകൾ](#relay) യെക്കുറിച്ച് ഒരേ വിവരങ്ങൾ ഉണ്ടെന്ന് ഉറപ്പാക്കുന്നു. അത് "
+"[ടോർ നെറ്റ്വർക്ക്](#tor-/-tor-network/-core-tor) ഉൾക്കൊള്ളുന്നു."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### cookie"
-msgstr ""
+msgstr "### cookie"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
@@ -7229,11 +7412,16 @@ msgid ""
"while the user is browsing. [Tor Browser](#tor-browser) does not store "
"cookies."
msgstr ""
+"ഒരു [HTTP](# http) കുക്കി (വെബ് കുക്കി, ഇന്റർനെറ്റ് കുക്കി, ഡൗസർ കുക്കി "
+"അല്ലെങ്കിൽ ലളിതമായി കുക്കി എന്നും അറിയപ്പെടുന്നു) ഒരു വെബ്സൈറ്റിൽ നിന്ന് "
+"അയച്ചതും ഉപയോക്താവിന്റെ കമ്പ്യൂട്ടറിൽ ഉപയോക്താവിന്റെ [വെബ് ബ്രൗസർ](#web-"
+"browser) സംഭരിക്കുന്നതുമായ ഒരു ചെറിയ ഡാറ്റയാണ് ഉപയോക്താവ് "
+"ബ്രൗസുചെയ്യുമ്പോൾ. [ടോർ ബ്രൗസർ](#tor-browser) കുക്കികൾ സംഭരിക്കുന്നില്ല."
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
msgid "### cross-site scripting (XSS)"
-msgstr ""
+msgstr "### cross-site scripting (XSS)"
#: https//support.torproject.org/misc/glossary/
#: (content/misc/glossary/contents+en.lrquestion.description)
1
0
[translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit 8c655621c7f178ef9d5244ecf3ea5516d67f536e
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 17:53:45 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
contents+ml.po | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 60 insertions(+), 5 deletions(-)
diff --git a/contents+ml.po b/contents+ml.po
index d2012f21a..d3492435c 100644
--- a/contents+ml.po
+++ b/contents+ml.po
@@ -6269,6 +6269,9 @@ msgid ""
"future is the recommended way to ensure the reputation of the relay won't be"
" wasted."
msgstr ""
+"ഐഡന്റിറ്റി കീകളുടെ ബാക്കപ്പുകൾ സൂക്ഷിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് ഭാവിയിൽ ഒരു "
+"റിലേ പുന : സ്ഥാപിക്കാൻ കഴിയും, റിലേയുടെ പ്രശസ്തി പാഴാകില്ലെന്ന് "
+"ഉറപ്പാക്കാനുള്ള ശുപാർശിത മാർഗമാണിത്."
#: https//support.torproject.org/operators/upgrade-or-move/
#: (content/operators/upgrade-or-move/contents+en.lrquestion.description)
@@ -6277,6 +6280,9 @@ msgid ""
"torrc and the same DataDirectory, then the upgrade should just work and your"
" relay will keep using the same key."
msgstr ""
+"ഇതിനർത്ഥം നിങ്ങൾ ടോർ റിലേ അപ്ഗ്രേഡുചെയ്യുകയും അതേ ടോർക്കും അതേ ഡാറ്റാ "
+"ഡയറക്ടറിയും സൂക്ഷിക്കുകയും ചെയ്യുന്നുവെങ്കിൽ, അപ്ഗ്രേഡ് പ്രവർത്തിക്കുകയും "
+"നിങ്ങളുടെ റിലേ അതേ കീ ഉപയോഗിക്കുകയും ചെയ്യും."
#: https//support.torproject.org/operators/upgrade-or-move/
#: (content/operators/upgrade-or-move/contents+en.lrquestion.description)
@@ -6284,6 +6290,9 @@ msgid ""
"If you need to pick a new DataDirectory, be sure to copy your old "
"keys/ed25519_master_id_secret_key and keys/secret_id_key over."
msgstr ""
+"നിങ്ങൾക്ക് ഒരു പുതിയ ഡാറ്റാ ഡയറക്ടറി തിരഞ്ഞെടുക്കണമെങ്കിൽ, നിങ്ങളുടെ old "
+"keys/ed25519_master_id_secret_key and keys/secret_id_key എന്നിവ പകർത്തുന്നത്"
+" ഉറപ്പാക്കുക."
#: https//support.torproject.org/operators/upgrade-or-move/
#: (content/operators/upgrade-or-move/contents+en.lrquestion.description)
@@ -6291,6 +6300,8 @@ msgid ""
"Note: As of Tor 0.2.7 we are using new generation identities for relays "
"based on ed25519 elliptic curve cryptography."
msgstr ""
+"കുറിപ്പ്: ടോർ 0.2.7 വരെ ഞങ്ങൾ ed25519 എലിപ്റ്റിക് കർവ് ക്രിപ്റ്റോഗ്രഫി "
+"അടിസ്ഥാനമാക്കി റിലേകൾക്കായി പുതിയ തലമുറ ഐഡന്റിറ്റികൾ ഉപയോഗിക്കുന്നു."
#: https//support.torproject.org/operators/upgrade-or-move/
#: (content/operators/upgrade-or-move/contents+en.lrquestion.description)
@@ -6298,6 +6309,8 @@ msgid ""
"Eventually they will replace the old RSA identities, but that will happen in"
" time, to ensure compatibility with older versions."
msgstr ""
+"ക്രമേണ അവ പഴയ ആർഎസ്എ ഐഡന്റിറ്റികൾ മാറ്റിസ്ഥാപിക്കും, പക്ഷേ പഴയ "
+"പതിപ്പുകളുമായി പൊരുത്തപ്പെടൽ ഉറപ്പാക്കുന്നതിന് അത് കൃത്യസമയത്ത് സംഭവിക്കും."
#: https//support.torproject.org/operators/upgrade-or-move/
#: (content/operators/upgrade-or-move/contents+en.lrquestion.description)
@@ -6306,6 +6319,9 @@ msgid ""
"file: keys/ed25519_master_id_secret_key) and a RSA identity (identity key "
"file: keys/secret_id_key)."
msgstr ""
+"അതുവരെ, ഓരോ റിലേയിലും ഒരു ed25519 ഐഡന്റിറ്റിയും (ഐഡന്റിറ്റി കീ ഫയൽ: "
+"keys/ed25519_master_id_secret_key) ഒരു RSA ഐഡന്റിറ്റിയും (identity key file:"
+" keys/secret_id_key) ഉണ്ടായിരിക്കും."
#: https//support.torproject.org/operators/upgrade-or-move/
#: (content/operators/upgrade-or-move/contents+en.lrquestion.description)
@@ -6313,11 +6329,14 @@ msgid ""
"You need to copy / backup both of them in order to restore your relay, "
"change your DataDirectory or migrate the relay on a new computer."
msgstr ""
+"നിങ്ങളുടെ റിലേ പുന : സ്ഥാപിക്കുന്നതിനോ ഡാറ്റാഡയറക്ടറി മാറ്റുന്നതിനോ ഒരു "
+"പുതിയ കമ്പ്യൂട്ടറിൽ റിലേ മൈഗ്രേറ്റ് ചെയ്യുന്നതിനോ നിങ്ങൾ രണ്ടും പകർത്തുക / "
+"ബാക്കപ്പ് ചെയ്യേണ്ടതുണ്ട്."
#: https//support.torproject.org/operators/what-is-the-bad-exit-flag/
#: (content/operators/what-is-the-bad-exit-flag/contents+en.lrquestion.title)
msgid "What is the BadExit flag?"
-msgstr ""
+msgstr "എന്താണ് ബാഡ്എക്സിറ്റ് ഫ്ലാഗ്?"
#: https//support.torproject.org/operators/what-is-the-bad-exit-flag/
#: (content/operators/what-is-the-bad-exit-flag/contents+en.lrquestion.description)
@@ -6326,6 +6345,9 @@ msgid ""
"This tells Tor to avoid exiting through that relay. In effect, relays with "
"this flag become non-exits."
msgstr ""
+"ഒരു എക്സിറ്റ് തെറ്റായി കോൺഫിഗർ ചെയ്യുമ്പോഴോ ക്ഷുദ്രകരമാകുമ്പോഴോ അതിന് ബാഡ് "
+"എക്സിറ്റ് ഫ്ലാഗ് നൽകിയിട്ടുണ്ട്. ആ റിലേയിലൂടെ പുറത്തുകടക്കുന്നത് ഒഴിവാക്കാൻ "
+"ഇത് ടോറിനോട് പറയുന്നു. ഫലത്തിൽ, ഈ ഫ്ലാഗുള്ള റിലേകൾ പുറത്തുകടക്കുന്നില്ല."
#: https//support.torproject.org/operators/what-is-the-bad-exit-flag/
#: (content/operators/what-is-the-bad-exit-flag/contents+en.lrquestion.description)
@@ -6336,11 +6358,16 @@ msgid ""
"team](https://community.torproject.org/relay/community-resources/bad-"
"relays/) so we can sort out the issue."
msgstr ""
+"നിങ്ങൾക്ക് ഈ ഫ്ലാഗ് ലഭിച്ചിട്ടുണ്ടെങ്കിൽ, നിങ്ങളുടെ എക്സിറ്റ് വഴി ട്രാഫിക് "
+"റൂട്ട് ചെയ്യുമ്പോൾ ഞങ്ങൾ ഒരു പ്രശ്നമോ സംശയാസ്പദമായ പ്രവർത്തനമോ കണ്ടെത്തി, "
+"നിങ്ങളുമായി ബന്ധപ്പെടാൻ കഴിഞ്ഞില്ല. [മോശം-റിലേ "
+"ടീമിലേക്ക്](https://community.torproject.org/relay/community-resources/bad-"
+"relays/) ബന്ധപ്പെടുക, അതിനാൽ ഞങ്ങൾക്ക് പ്രശ്നം പരിഹരിക്കാൻ കഴിയും."
#: https//support.torproject.org/operators/what-type-of-relays-are-most-needed/
#: (content/operators/what-type-of-relays-are-most-needed/contents+en.lrquestion.title)
msgid "What type of relays are most needed?"
-msgstr ""
+msgstr "ഏത് തരം റിലേകളാണ് ഏറ്റവും ആവശ്യമുള്ളത്?"
#: https//support.torproject.org/operators/what-type-of-relays-are-most-needed/
#: (content/operators/what-type-of-relays-are-most-needed/contents+en.lrquestion.description)
@@ -6349,6 +6376,9 @@ msgid ""
"highest legal exposure and risk (and **you should NOT run them from your "
"home**)."
msgstr ""
+"* എക്സിറ്റ് റിലേ ഏറ്റവും ആവശ്യമുള്ള റിലേ തരമാണ്, പക്ഷേ ഇത് ഏറ്റവും ഉയർന്ന "
+"നിയമപരമായ എക്സ്പോഷറും അപകടസാധ്യതയുമുള്ളതാണ് (കൂടാതെ ** നിങ്ങളുടെ വീട്ടിൽ "
+"നിന്ന് അവ പ്രവർത്തിപ്പിക്കാൻ പാടില്ല **)."
#: https//support.torproject.org/operators/what-type-of-relays-are-most-needed/
#: (content/operators/what-type-of-relays-are-most-needed/contents+en.lrquestion.description)
@@ -6356,16 +6386,19 @@ msgid ""
"* If you are looking to run a relay with minimal effort, fast guard relays "
"are also very useful"
msgstr ""
+"* നിങ്ങൾ കുറഞ്ഞ പ്രയത്നത്തോടെ ഒരു റിലേ പ്രവർത്തിപ്പിക്കാൻ "
+"ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഫാസ്റ്റ് ഗാർഡ് റിലേകളും വളരെ ഉപയോഗപ്രദമാണ്"
#: https//support.torproject.org/operators/what-type-of-relays-are-most-needed/
#: (content/operators/what-type-of-relays-are-most-needed/contents+en.lrquestion.description)
msgid "* Followed by bridges."
-msgstr ""
+msgstr "* പാലങ്ങൾ പിന്തുടരുന്നു."
#: https//support.torproject.org/operators/why-i-get-portscanned-more-often/
#: (content/operators/why-i-get-portscanned-more-often/contents+en.lrquestion.title)
msgid "Why do I get portscanned more often when I run a Tor relay?"
msgstr ""
+"ഞാൻ ഒരു ടോർ റിലേ പ്രവർത്തിപ്പിക്കുമ്പോൾ എന്തിനാണ് പോർട്ട്സ്കാൻ ചെയ്യുന്നത്?"
#: https//support.torproject.org/operators/why-i-get-portscanned-more-often/
#: (content/operators/why-i-get-portscanned-more-often/contents+en.lrquestion.description)
@@ -6378,6 +6411,16 @@ msgid ""
"from you might attract the attention of other users on the IRC server, "
"website, etc. who want to know more about the host they're relaying through."
msgstr ""
+"നിങ്ങൾ എക്സിറ്റ് കണക്ഷനുകൾ അനുവദിക്കുകയാണെങ്കിൽ, നിങ്ങളെക്കുറിച്ചുള്ള കൂടുതൽ"
+" വിവരങ്ങൾ ശേഖരിക്കുന്നതിന് ആളുകൾ നിങ്ങളുടെ റിലേയിൽ നിന്ന് കണക്റ്റുചെയ്യുന്ന "
+"ചില സേവനങ്ങൾ തിരികെ ബന്ധിപ്പിക്കും. ഉദാഹരണത്തിന്, ഏത് ഉപയോക്താവാണ് കണക്ഷൻ "
+"നൽകിയതെന്ന് റെക്കോർഡുചെയ്യുന്നതിന് ചില ഐആർസി സെർവറുകൾ നിങ്ങളുടെ ഐഡന്റിറ്റി "
+"പോർട്ടിലേക്ക് തിരികെ ബന്ധിപ്പിക്കുന്നു. (ഇത് അവർക്ക് ശരിക്കും "
+"പ്രവർത്തിക്കുന്നില്ല, കാരണം ടോറിന് ഈ വിവരം അറിയില്ല, പക്ഷേ അവർ "
+"എങ്ങനെയെങ്കിലും ശ്രമിക്കുന്നു.) കൂടാതെ, നിങ്ങളിൽ നിന്ന് പുറത്തുകടക്കുന്ന "
+"ഉപയോക്താക്കൾ ആഗ്രഹിക്കുന്ന ഐആർസി സെർവർ, വെബ്സൈറ്റ് മുതലായവയിലെ മറ്റ് "
+"ഉപയോക്താക്കളുടെ ശ്രദ്ധ ആകർഷിച്ചേക്കാം. അവർ റിലേ ചെയ്യുന്ന "
+"ഹോസ്റ്റിനെക്കുറിച്ച് കൂടുതലറിയുക."
#: https//support.torproject.org/operators/why-i-get-portscanned-more-often/
#: (content/operators/why-i-get-portscanned-more-often/contents+en.lrquestion.description)
@@ -6386,6 +6429,10 @@ msgid ""
" learned that sometimes Tor relays expose their socks port to the world. We "
"recommend that you bind your socksport to local networks only."
msgstr ""
+"മറ്റൊരു കാരണം, ഇൻറർനെറ്റിൽ ഓപ്പൺ പ്രോക്സികൾക്കായി സ്കാൻ ചെയ്യുന്ന ഗ്രൂപ്പുകൾ"
+" ചിലപ്പോൾ ടോർ റിലേകൾ തങ്ങളുടെ സോക്സ് പോർട്ട് ലോകത്തിന് മുന്നിൽ "
+"തുറന്നുകാട്ടുന്നുവെന്ന് മനസിലാക്കി. നിങ്ങളുടെ സോക്സ്പോർട്ട് പ്രാദേശിക "
+"നെറ്റ്വർക്കുകളിലേക്ക് മാത്രം ബന്ധിപ്പിക്കാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു."
#: https//support.torproject.org/operators/why-i-get-portscanned-more-often/
#: (content/operators/why-i-get-portscanned-more-often/contents+en.lrquestion.description)
@@ -6395,16 +6442,20 @@ msgid ""
"relays](https://trac.torproject.org/projects/tor/wiki/TorRelayGuide/Securit…"
" for more suggestions."
msgstr ""
+"ഏത് സാഹചര്യത്തിലും, നിങ്ങളുടെ സുരക്ഷയുമായി കാലികമായി തുടരേണ്ടതുണ്ട്. കൂടുതൽ "
+"നിർദ്ദേശങ്ങൾക്കായി [ടോർ റിലേകൾക്കുള്ള "
+"സുരക്ഷ](https://trac.torproject.org/projects/tor/wiki/TorRelayGuide/Securit…"
+" എന്നതിലെ ഈ ലേഖനം കാണുക."
#: https//support.torproject.org/operators/why-isnt-my-relay-being-used-more/
#: (content/operators/why-isnt-my-relay-being-used-more/contents+en.lrquestion.title)
msgid "Why isn't my relay being used more?"
-msgstr ""
+msgstr "എന്തുകൊണ്ടാണ് എന്റെ റിലേ കൂടുതൽ ഉപയോഗിക്കാത്തത്?"
#: https//support.torproject.org/operators/why-isnt-my-relay-being-used-more/
#: (content/operators/why-isnt-my-relay-being-used-more/contents+en.lrquestion.description)
msgid "If your relay is relatively new then give it time."
-msgstr ""
+msgstr "നിങ്ങളുടെ റിലേ താരതമ്യേന പുതിയതാണെങ്കിൽ അതിന് സമയം നൽകുക."
#: https//support.torproject.org/operators/why-isnt-my-relay-being-used-more/
#: (content/operators/why-isnt-my-relay-being-used-more/contents+en.lrquestion.description)
@@ -6414,6 +6465,10 @@ msgid ""
"capacity and, over time, directs more traffic there until it reaches an "
"optimal load."
msgstr ""
+"ബാൻഡ്വിഡ്ത്ത് അതോറിറ്റികളിൽ നിന്നുള്ള റിപ്പോർട്ടുകളെ അടിസ്ഥാനമാക്കി ഏത് "
+"റിലേകളാണ് ഹ്യൂറിസ്റ്റിക്കായി ഉപയോഗിക്കുന്നതെന്ന് ടോർ തീരുമാനിക്കുന്നു. ഈ "
+"അധികാരികൾ നിങ്ങളുടെ റിലേയുടെ ശേഷി അളക്കുന്നു, കാലക്രമേണ, അത് ഒരു മികച്ച "
+"ലോഡിലെത്തുന്നതുവരെ അവിടെ കൂടുതൽ ട്രാഫിക്കിനെ നയിക്കുന്നു."
#: https//support.torproject.org/operators/why-isnt-my-relay-being-used-more/
#: (content/operators/why-isnt-my-relay-being-used-more/contents+en.lrquestion.description)
1
0
[collector/master] Remove dependency on DescriptorIndexCollector.
by karsten@torproject.org 22 Nov '19
by karsten@torproject.org 22 Nov '19
22 Nov '19
commit cc3aa57e57cdcd632a6a8a360f08880f0ec57242
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Nov 22 18:49:46 2019 +0100
Remove dependency on DescriptorIndexCollector.
---
src/main/java/org/torproject/metrics/collector/sync/SyncManager.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java b/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java
index 005501f..5a1a142 100644
--- a/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java
+++ b/src/main/java/org/torproject/metrics/collector/sync/SyncManager.java
@@ -8,7 +8,6 @@ import org.torproject.descriptor.DescriptorCollector;
import org.torproject.descriptor.DescriptorReader;
import org.torproject.descriptor.DescriptorSourceFactory;
import org.torproject.descriptor.UnparseableDescriptor;
-import org.torproject.descriptor.index.DescriptorIndexCollector;
import org.torproject.metrics.collector.conf.Configuration;
import org.torproject.metrics.collector.conf.ConfigurationException;
import org.torproject.metrics.collector.conf.Key;
@@ -47,8 +46,8 @@ public class SyncManager {
String marker, Configuration conf) throws ConfigurationException {
Path basePath = conf.getPath(Key.SyncPath);
- // The default implementation is less robust.
- DescriptorCollector descriptorCollector = new DescriptorIndexCollector();
+ DescriptorCollector descriptorCollector
+ = DescriptorSourceFactory.createDescriptorCollector();
for (URL source : sources) {
try {
File storage = new File(basePath.toFile(),
1
0
[collector/master] Remove dependency on metrics-lib's internal package.
by karsten@torproject.org 22 Nov '19
by karsten@torproject.org 22 Nov '19
22 Nov '19
commit 5a0e6be21c2de4b35e4111364b3ecd7caf424164
Author: Karsten Loesing <karsten.loesing(a)gmx.net>
Date: Fri Nov 22 17:54:26 2019 +0100
Remove dependency on metrics-lib's internal package.
The only functionality contained in metrics-lib's internal package is
file (de-)compression, which in turn uses a third-party library that
we're using anyway. This is a weak reason for depending on our own
library for this functionality. Removing this dependency will make it
easier to make changes to our library in the future.
The new FileType class is based on a copy of the same enum type in
metrics-lib without @since tags and without methods that we don't use.
---
CHANGELOG.md | 3 +
.../persist/WebServerAccessLogPersistence.java | 2 +-
.../metrics/collector/webstats/FileType.java | 78 ++++++++++++++++++++++
.../metrics/collector/webstats/LogMetadata.java | 2 -
.../collector/webstats/SanitizeWeblogs.java | 1 -
5 files changed, 82 insertions(+), 4 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b55d7a4..73abdea 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
- Give up on periodically checking the configuration file for
updates and reloading it in case of changes.
+ * Minor changes
+ - Remove dependency on metrics-lib's internal package.
+
# Changes in version 1.13.1 - 2019-11-11
diff --git a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
index b10f706..848fa2e 100644
--- a/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
+++ b/src/main/java/org/torproject/metrics/collector/persist/WebServerAccessLogPersistence.java
@@ -4,8 +4,8 @@
package org.torproject.metrics.collector.persist;
import org.torproject.descriptor.WebServerAccessLog;
-import org.torproject.descriptor.internal.FileType;
import org.torproject.descriptor.log.InternalWebServerAccessLog;
+import org.torproject.metrics.collector.webstats.FileType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/torproject/metrics/collector/webstats/FileType.java b/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
new file mode 100644
index 0000000..79dcf21
--- /dev/null
+++ b/src/main/java/org/torproject/metrics/collector/webstats/FileType.java
@@ -0,0 +1,78 @@
+/* Copyright 2016--2019 The Tor Project
+ * See LICENSE for licensing information */
+
+package org.torproject.metrics.collector.webstats;
+
+import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
+import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
+import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream;
+import org.apache.commons.compress.compressors.xz.XZCompressorInputStream;
+import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * These enums provide compression functionality.
+ *
+ * <p>{@link #findType} determines the compression type by the given extension.
+ * Compression can also be zero-compression, which is currently provided by
+ * the PLAIN and JSON enums.</p>
+ */
+public enum FileType {
+
+ BZ2(BZip2CompressorInputStream.class, BZip2CompressorOutputStream.class),
+ GZ(GzipCompressorInputStream.class, GzipCompressorOutputStream.class),
+ JSON(BufferedInputStream.class, BufferedOutputStream.class),
+ PLAIN(BufferedInputStream.class, BufferedOutputStream.class),
+ XZ(XZCompressorInputStream.class, XZCompressorOutputStream.class);
+
+ private final Class<? extends InputStream> inClass;
+ private final Class<? extends OutputStream> outClass;
+
+ FileType(Class<? extends InputStream> in, Class<? extends OutputStream> out) {
+ this.inClass = in;
+ this.outClass = out;
+ }
+
+ /**
+ * Returns {@code valueOf} or the default enum {@link #PLAIN}, i.e.,
+ * this method doesn't throw any exceptions and allways returns a valid enum.
+ */
+ public static FileType findType(String ext) {
+ FileType res;
+ try {
+ res = FileType.valueOf(ext.toUpperCase());
+ return res;
+ } catch (IllegalArgumentException | NullPointerException re) {
+ return PLAIN;
+ }
+ }
+
+ /**
+ * Return the appropriate input stream.
+ */
+ public InputStream inputStream(InputStream is) throws Exception {
+ return this.inClass.getConstructor(new Class[]{InputStream.class})
+ .newInstance(is);
+ }
+
+ /**
+ * Return the appropriate output stream.
+ */
+ public OutputStream outputStream(OutputStream os) throws Exception {
+ return this.outClass.getConstructor(new Class[]{OutputStream.class})
+ .newInstance(os);
+ }
+
+ /**
+ * Decompresses the given InputStream and returns an OutputStream.
+ */
+ public InputStream decompress(InputStream is) throws Exception {
+ return this.inputStream(is);
+ }
+}
+
diff --git a/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java b/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java
index c74cbcb..b04fcb5 100644
--- a/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java
+++ b/src/main/java/org/torproject/metrics/collector/webstats/LogMetadata.java
@@ -5,8 +5,6 @@ package org.torproject.metrics.collector.webstats;
import static org.torproject.descriptor.log.WebServerAccessLogImpl.MARKER;
-import org.torproject.descriptor.internal.FileType;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java b/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
index 027cfde..5c001b6 100644
--- a/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
+++ b/src/main/java/org/torproject/metrics/collector/webstats/SanitizeWeblogs.java
@@ -12,7 +12,6 @@ import static java.util.stream.Collectors.summingLong;
import org.torproject.descriptor.DescriptorParseException;
import org.torproject.descriptor.Method;
import org.torproject.descriptor.WebServerAccessLog;
-import org.torproject.descriptor.internal.FileType;
import org.torproject.descriptor.log.InternalLogDescriptor;
import org.torproject.descriptor.log.InternalWebServerAccessLog;
import org.torproject.descriptor.log.WebServerAccessLogImpl;
1
0
[translation/donatepages-messagespot] https://gitweb.torproject.org/translation.git/commit/?h=donatepages-messagespot
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit 73f138d6a6b3b1d58cbf63899e90d13744600920
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 17:15:47 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=donatepages-message…
---
locale/ru/LC_MESSAGES/messages.po | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/locale/ru/LC_MESSAGES/messages.po b/locale/ru/LC_MESSAGES/messages.po
index 4cd23f150..b8c538896 100644
--- a/locale/ru/LC_MESSAGES/messages.po
+++ b/locale/ru/LC_MESSAGES/messages.po
@@ -952,7 +952,7 @@ msgstr ""
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:294
msgid "how do you want to <span class=\"lime\">DONATE</span>?"
-msgstr ""
+msgstr "как вы хотите <span class=\"lime\">пожертвовать</span>?"
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:300
#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:336
@@ -1076,11 +1076,11 @@ msgstr "Пожертвовать"
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:456
msgid "State/Province/Region"
-msgstr ""
+msgstr "Государство / Провинция / Регион"
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:460
msgid "Gift Selected:"
-msgstr ""
+msgstr "Подарок выбран:"
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:464
#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:457
@@ -1179,7 +1179,7 @@ msgstr "в месяц"
#: tmp/cache_locale/af/af919ed4d7946ee7ed7d71a5580f4c75c5fb2b9374dd8d99d3a0671f71654f60.php:557
msgid "Gift selected"
-msgstr ""
+msgstr "Подарок выбран"
#: tmp/cache_locale/94/94c6c1969d2fadbd23c135ac864b97902daca8f5c816b03864ea5c4970a167cf.php:95
msgid ""
1
0
[translation/support-portal] https://gitweb.torproject.org/translation.git/commit/?h=support-portal
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit 776b79fc82fd93fc274aeefd5af6d33389f20ca7
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 16:54:03 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=support-portal
---
contents+ar.po | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/contents+ar.po b/contents+ar.po
index 65567a843..5b1bc381d 100644
--- a/contents+ar.po
+++ b/contents+ar.po
@@ -356,6 +356,12 @@ msgid ""
"[NoScript](https://noscript.net) — and adding anything else could "
"deanonymize you."
msgstr ""
+"يأتى متصفّح تور Tor Browser بإضافتين وهما \"HTTPS في كل مكان\""
+" [HTTPS "
+"Everywhere](https://www.eff.org/https-everywhere)"
+" و "
+"[NoScript](https://noscript.net) - وأي إضافات أخرى قد تؤدي إلى إزالة صفة "
+"المجهوليّة عن المستخدم "
#: https//support.torproject.org/faq/faq-3/
#: (content/faq/faq-3/contents+en.lrquestion.description)
@@ -366,13 +372,17 @@ msgid ""
"[article](https://blog.torproject.org/browser-fingerprinting-introduction-"
"and-challenges-ahead) on The Tor Blog all about it!"
msgstr ""
+"هل تريديون أن تعرفون أكثر عن تبصيم المتصفّحات؟ هذا"
+" "
+"[المقال](https://blog.torproject.org/browser-fingerprinting-introduction-"
+"and-challenges-ahead) على مدوّنة تور "
#: https//support.torproject.org/faq/faq-4/
#: (content/faq/faq-4/contents+en.lrquestion.title)
#: https//support.torproject.org/tbb/tbb-31/
#: (content/tbb/tbb-31/contents+en.lrquestion.title)
msgid "Which platforms is Tor Browser available for?"
-msgstr ""
+msgstr "ما هي الأنظمة التشغيليّة المتوفّر عليها متصفح تور أو Tor Browser؟ "
#: https//support.torproject.org/faq/faq-4/
#: (content/faq/faq-4/contents+en.lrquestion.description)
@@ -385,6 +395,10 @@ msgid ""
"easy.html.en#linux) and [macOS](https://www.torproject.org/download"
"/download-easy.html.en#mac)."
msgstr ""
+"متصفّح تور أو Tor Browser متوفّر حاليّاً على "
+"[ويندوز](https://www.torproject.org/download/download-easy.html.en#windows) "
+"و [لينكس](https://www.torproject.org/download/download-easy.html.en#linux) و"
+" [ماك](https://www.torproject.org/download/download-easy.html.en#mac)."
#: https//support.torproject.org/faq/faq-4/
#: (content/faq/faq-4/contents+en.lrquestion.description)
@@ -8251,7 +8265,7 @@ msgstr ""
#: lego/templates/banner.html:2 lego/templates/banner.html:4
#: templates/banner.html:2 templates/banner.html:4
msgid "Close banner"
-msgstr ""
+msgstr "إغلاق"
#: lego/templates/banner.html:10 templates/banner.html:10
msgid "Tracking, surveillance, and censorship are widespread online."
1
0
[translation/tpo-web] https://gitweb.torproject.org/translation.git/commit/?h=tpo-web
by translation@torproject.org 22 Nov '19
by translation@torproject.org 22 Nov '19
22 Nov '19
commit aec9c70defae42e318e4e588b60b9eddf7262148
Author: Translation commit bot <translation(a)torproject.org>
Date: Fri Nov 22 16:53:31 2019 +0000
https://gitweb.torproject.org/translation.git/commit/?h=tpo-web
---
contents+ar.po | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/contents+ar.po b/contents+ar.po
index a85b0b06b..3179b4270 100644
--- a/contents+ar.po
+++ b/contents+ar.po
@@ -9,6 +9,7 @@
# IDRASSI Mounir <mounir.idrassi(a)idrix.fr>, 2019
# Ahmed IB <mee.tbhole(a)gmail.com>, 2019
# Emma Peel, 2019
+# Layla Taha <layla(a)asl19.org>, 2019
#
msgid ""
msgstr ""
@@ -16,7 +17,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-15 12:00+CET\n"
"PO-Revision-Date: 2019-03-09 10:41+0000\n"
-"Last-Translator: Emma Peel, 2019\n"
+"Last-Translator: Layla Taha <layla(a)asl19.org>, 2019\n"
"Language-Team: Arabic (https://www.transifex.com/otf/teams/1519/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -741,7 +742,7 @@ msgstr ""
#: lego/templates/banner.html:2 lego/templates/banner.html:4
#: templates/banner.html:2 templates/banner.html:4
msgid "Close banner"
-msgstr ""
+msgstr "إغلاق"
#: lego/templates/banner.html:10 templates/banner.html:10
msgid "Tracking, surveillance, and censorship are widespread online."
1
0