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

Unified Diff: tools/telemetry/third_party/gsutil/third_party/rsa/rsa/common.py

Issue 1260493004: Revert "Add gsutil 4.13 to telemetry/third_party" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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: tools/telemetry/third_party/gsutil/third_party/rsa/rsa/common.py
diff --git a/tools/telemetry/third_party/gsutil/third_party/rsa/rsa/common.py b/tools/telemetry/third_party/gsutil/third_party/rsa/rsa/common.py
deleted file mode 100644
index 39feb8c228695f2303702196e2612c1ecdb8140d..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/gsutil/third_party/rsa/rsa/common.py
+++ /dev/null
@@ -1,185 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Copyright 2011 Sybren A. Stüvel <sybren@stuvel.eu>
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-'''Common functionality shared by several modules.'''
-
-
-def bit_size(num):
- '''
- Number of bits needed to represent a integer excluding any prefix
- 0 bits.
-
- As per definition from http://wiki.python.org/moin/BitManipulation and
- to match the behavior of the Python 3 API.
-
- Usage::
-
- >>> bit_size(1023)
- 10
- >>> bit_size(1024)
- 11
- >>> bit_size(1025)
- 11
-
- :param num:
- Integer value. If num is 0, returns 0. Only the absolute value of the
- number is considered. Therefore, signed integers will be abs(num)
- before the number's bit length is determined.
- :returns:
- Returns the number of bits in the integer.
- '''
- if num == 0:
- return 0
- if num < 0:
- num = -num
-
- # Make sure this is an int and not a float.
- num & 1
-
- hex_num = "%x" % num
- return ((len(hex_num) - 1) * 4) + {
- '0':0, '1':1, '2':2, '3':2,
- '4':3, '5':3, '6':3, '7':3,
- '8':4, '9':4, 'a':4, 'b':4,
- 'c':4, 'd':4, 'e':4, 'f':4,
- }[hex_num[0]]
-
-
-def _bit_size(number):
- '''
- Returns the number of bits required to hold a specific long number.
- '''
- if number < 0:
- raise ValueError('Only nonnegative numbers possible: %s' % number)
-
- if number == 0:
- return 0
-
- # This works, even with very large numbers. When using math.log(number, 2),
- # you'll get rounding errors and it'll fail.
- bits = 0
- while number:
- bits += 1
- number >>= 1
-
- return bits
-
-
-def byte_size(number):
- '''
- Returns the number of bytes required to hold a specific long number.
-
- The number of bytes is rounded up.
-
- Usage::
-
- >>> byte_size(1 << 1023)
- 128
- >>> byte_size((1 << 1024) - 1)
- 128
- >>> byte_size(1 << 1024)
- 129
-
- :param number:
- An unsigned integer
- :returns:
- The number of bytes required to hold a specific long number.
- '''
- quanta, mod = divmod(bit_size(number), 8)
- if mod or number == 0:
- quanta += 1
- return quanta
- #return int(math.ceil(bit_size(number) / 8.0))
-
-
-def extended_gcd(a, b):
- '''Returns a tuple (r, i, j) such that r = gcd(a, b) = ia + jb
- '''
- # r = gcd(a,b) i = multiplicitive inverse of a mod b
- # or j = multiplicitive inverse of b mod a
- # Neg return values for i or j are made positive mod b or a respectively
- # Iterateive Version is faster and uses much less stack space
- x = 0
- y = 1
- lx = 1
- ly = 0
- oa = a #Remember original a/b to remove
- ob = b #negative values from return results
- while b != 0:
- q = a // b
- (a, b) = (b, a % b)
- (x, lx) = ((lx - (q * x)),x)
- (y, ly) = ((ly - (q * y)),y)
- if (lx < 0): lx += ob #If neg wrap modulo orignal b
- if (ly < 0): ly += oa #If neg wrap modulo orignal a
- return (a, lx, ly) #Return only positive values
-
-
-def inverse(x, n):
- '''Returns x^-1 (mod n)
-
- >>> inverse(7, 4)
- 3
- >>> (inverse(143, 4) * 143) % 4
- 1
- '''
-
- (divider, inv, _) = extended_gcd(x, n)
-
- if divider != 1:
- raise ValueError("x (%d) and n (%d) are not relatively prime" % (x, n))
-
- return inv
-
-
-def crt(a_values, modulo_values):
- '''Chinese Remainder Theorem.
-
- Calculates x such that x = a[i] (mod m[i]) for each i.
-
- :param a_values: the a-values of the above equation
- :param modulo_values: the m-values of the above equation
- :returns: x such that x = a[i] (mod m[i]) for each i
-
-
- >>> crt([2, 3], [3, 5])
- 8
-
- >>> crt([2, 3, 2], [3, 5, 7])
- 23
-
- >>> crt([2, 3, 0], [7, 11, 15])
- 135
- '''
-
- m = 1
- x = 0
-
- for modulo in modulo_values:
- m *= modulo
-
- for (m_i, a_i) in zip(modulo_values, a_values):
- M_i = m // m_i
- inv = inverse(M_i, m_i)
-
- x = (x + a_i * M_i * inv) % m
-
- return x
-
-if __name__ == '__main__':
- import doctest
- doctest.testmod()
-

Powered by Google App Engine
This is Rietveld 408576698