summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/tlslite/tlslite/VerifierDB.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/tlslite/tlslite/VerifierDB.py')
-rw-r--r--chromium/third_party/tlslite/tlslite/VerifierDB.py90
1 files changed, 0 insertions, 90 deletions
diff --git a/chromium/third_party/tlslite/tlslite/VerifierDB.py b/chromium/third_party/tlslite/tlslite/VerifierDB.py
deleted file mode 100644
index f706b179672..00000000000
--- a/chromium/third_party/tlslite/tlslite/VerifierDB.py
+++ /dev/null
@@ -1,90 +0,0 @@
-"""Class for storing SRP password verifiers."""
-
-from utils.cryptomath import *
-from utils.compat import *
-import mathtls
-from BaseDB import BaseDB
-
-class VerifierDB(BaseDB):
- """This class represent an in-memory or on-disk database of SRP
- password verifiers.
-
- A VerifierDB can be passed to a server handshake to authenticate
- a client based on one of the verifiers.
-
- This class is thread-safe.
- """
- def __init__(self, filename=None):
- """Create a new VerifierDB instance.
-
- @type filename: str
- @param filename: Filename for an on-disk database, or None for
- an in-memory database. If the filename already exists, follow
- this with a call to open(). To create a new on-disk database,
- follow this with a call to create().
- """
- BaseDB.__init__(self, filename, "verifier")
-
- def _getItem(self, username, valueStr):
- (N, g, salt, verifier) = valueStr.split(" ")
- N = base64ToNumber(N)
- g = base64ToNumber(g)
- salt = base64ToString(salt)
- verifier = base64ToNumber(verifier)
- return (N, g, salt, verifier)
-
- def __setitem__(self, username, verifierEntry):
- """Add a verifier entry to the database.
-
- @type username: str
- @param username: The username to associate the verifier with.
- Must be less than 256 characters in length. Must not already
- be in the database.
-
- @type verifierEntry: tuple
- @param verifierEntry: The verifier entry to add. Use
- L{tlslite.VerifierDB.VerifierDB.makeVerifier} to create a
- verifier entry.
- """
- BaseDB.__setitem__(self, username, verifierEntry)
-
-
- def _setItem(self, username, value):
- if len(username)>=256:
- raise ValueError("username too long")
- N, g, salt, verifier = value
- N = numberToBase64(N)
- g = numberToBase64(g)
- salt = stringToBase64(salt)
- verifier = numberToBase64(verifier)
- valueStr = " ".join( (N, g, salt, verifier) )
- return valueStr
-
- def _checkItem(self, value, username, param):
- (N, g, salt, verifier) = value
- x = mathtls.makeX(salt, username, param)
- v = powMod(g, x, N)
- return (verifier == v)
-
-
- def makeVerifier(username, password, bits):
- """Create a verifier entry which can be stored in a VerifierDB.
-
- @type username: str
- @param username: The username for this verifier. Must be less
- than 256 characters in length.
-
- @type password: str
- @param password: The password for this verifier.
-
- @type bits: int
- @param bits: This values specifies which SRP group parameters
- to use. It must be one of (1024, 1536, 2048, 3072, 4096, 6144,
- 8192). Larger values are more secure but slower. 2048 is a
- good compromise between safety and speed.
-
- @rtype: tuple
- @return: A tuple which may be stored in a VerifierDB.
- """
- return mathtls.makeVerifier(username, password, bits)
- makeVerifier = staticmethod(makeVerifier) \ No newline at end of file