Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Unified Diff: third_party/twisted_8_1/twisted/python/randbytes.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/python/randbytes.py
diff --git a/third_party/twisted_8_1/twisted/python/randbytes.py b/third_party/twisted_8_1/twisted/python/randbytes.py
deleted file mode 100644
index 319363d86f97d2af08d6e508757bd536e60d9c0b..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/python/randbytes.py
+++ /dev/null
@@ -1,177 +0,0 @@
-# -*- test-case-name: twisted.test.test_randbytes -*-
-# Copyright (c) 2007 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Cryptographically secure random implementation, with fallback on normal random.
-"""
-
-# System imports
-import warnings, os, random
-
-getrandbits = getattr(random, 'getrandbits', None)
-
-try:
- from Crypto.Util import randpool
-except ImportError:
- randpool = None
-
-
-
-class SecureRandomNotAvailable(RuntimeError):
- """
- Exception raised when no secure random algorithm is found.
- """
-
-
-
-class SourceNotAvailable(RuntimeError):
- """
- Internal exception used when a specific random source is not available.
- """
-
-
-
-class RandomFactory(object):
- """
- Factory providing L{secureRandom} and L{insecureRandom} methods.
-
- You shouldn't have to instantiate this class, use the module level
- functions instead: it is an implementation detail and could be removed or
- changed arbitrarily.
-
- @ivar randomPool: pool of random data.
- @type randomPool: C{randpool.RandomPool}
-
- @cvar randomSources: list of file sources used when os.urandom is not
- available.
- @type randomSources: C{tuple}
- """
- randpool = randpool
- randomPool = None
- randomSources = ('/dev/urandom',)
- getrandbits = getrandbits
-
-
- def _osUrandom(self, nbytes):
- """
- Wrapper around C{os.urandom} that cleanly manage its absence.
- """
- try:
- return os.urandom(nbytes)
- except (AttributeError, NotImplementedError), e:
- raise SourceNotAvailable(e)
-
-
- def _fileUrandom(self, nbytes):
- """
- Wrapper around random file sources.
-
- This method isn't meant to be call out of the class and could be
- removed arbitrarily.
- """
- for src in self.randomSources:
- try:
- f = file(src, 'rb')
- except (IOError, OSError):
- pass
- else:
- bytes = f.read(nbytes)
- f.close()
- return bytes
- raise SourceNotAvailable("File sources not available: %s" %
- (self.randomSources,))
-
-
- def _cryptoRandom(self, nbytes):
- """
- Wrapper around Crypo random pool.
- """
- if self.randpool is not None:
- if self.randomPool is None:
- self.randomPool = self.randpool.RandomPool()
- self.randomPool.stir()
- return self.randomPool.get_bytes(nbytes)
- raise SourceNotAvailable("PyCrypto isn't installed")
-
-
- def secureRandom(self, nbytes, fallback=False):
- """
- Return a number of secure random bytes.
-
- @param nbytes: number of bytes to generate.
- @type nbytes: C{int}.
- @param fallback: whether the function should fallback on non secure
- random or not. Default to C{false}.
- @type fallback: C{bool}
-
- @return: a string of random bytes.
- @rtype: C{str}.
- """
- for src in ("_osUrandom", "_fileUrandom", "_cryptoRandom"):
- try:
- return getattr(self, src)(nbytes)
- except SourceNotAvailable:
- pass
- if fallback:
- warnings.warn(
- "Neither PyCrypto nor urandom available - "
- "proceeding with non-cryptographically secure random source",
- category=RuntimeWarning,
- stacklevel=2
- )
- return self.insecureRandom(nbytes)
- else:
- raise SecureRandomNotAvailable("No secure random source available")
-
-
- def _randBits(self, nbytes):
- """
- Wrapper around C{os.getrandbits}.
- """
- if self.getrandbits is not None:
- n = self.getrandbits(nbytes * 8)
- hexBytes = ("%%0%dx" % (nbytes * 2)) % n
- return hexBytes.decode('hex')
- raise SourceNotAvailable("random.getrandbits is not available")
-
-
- def _randRange(self, nbytes):
- """
- Wrapper around C{random.randrange}.
- """
- bytes = ""
- for i in xrange(nbytes):
- bytes += chr(random.randrange(0, 255))
- return bytes
-
-
- def insecureRandom(self, nbytes):
- """
- Return a number of non secure random bytes.
-
- @param nbytes: number of bytes to generate.
- @type nbytes: C{int}.
-
- @return: a string of random bytes.
- @rtype: C{str}.
- """
- for src in ("_randBits", "_randRange"):
- try:
- return getattr(self, src)(nbytes)
- except SourceNotAvailable:
- pass
-
-
-
-factory = RandomFactory()
-
-secureRandom = factory.secureRandom
-
-insecureRandom = factory.insecureRandom
-
-del factory
-
-
-__all__ = ["secureRandom", "insecureRandom", "SecureRandomNotAvailable"]
-
« no previous file with comments | « third_party/twisted_8_1/twisted/python/procutils.py ('k') | third_party/twisted_8_1/twisted/python/rebuild.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698