Skip to content
Browse files

Remove references to old Starbound SHA-256 module

  • Loading branch information...
1 parent 87366fd commit f79725e6a03313a4dfd857ffc7d021c2e6754d7f Blixt committed Feb 28, 2014
Showing with 0 additions and 112 deletions.
  1. +0 −1 starbound/__init__.py
  2. +0 −111 starbound/starbound_sha256.py
View
1 starbound/__init__.py
@@ -1,7 +1,6 @@
from btreedb4 import FileBTreeDB4
from sbbf02 import FileSBBF02
from sbvj01 import FileSBVJ01
-from starbound_sha256 import sha256
import sbon
View
111 starbound/starbound_sha256.py
@@ -1,111 +0,0 @@
-# IMPORTANT! This module has been modified to *not* follow the standard SHA-256
-# algorithm. It will switch the padlen at 55 instead of 56, because that is how
-# Starbound does it in their implementation.
-# Modified by Blixt <me@blixt.org>
-
-__author__ = 'Thomas Dixon'
-__license__ = 'MIT'
-
-import copy, struct, sys
-
-def new(m=None):
- return sha256(m)
-
-class sha256(object):
- _k = (0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
- 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
- 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
- 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
- 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
- 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
- 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
- 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
- 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
- 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
- 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
- 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
- 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
- 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
- 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
- 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2)
- _h = (0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
- 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19)
- _output_size = 8
-
- blocksize = 1
- block_size = 64
- digest_size = 32
-
- def __init__(self, m=None):
- self._buffer = ''
- self._counter = 0
-
- if m is not None:
- if type(m) is not str:
- raise TypeError, '%s() argument 1 must be string, not %s' % (self.__class__.__name__, type(m).__name__)
- self.update(m)
-
- def _rotr(self, x, y):
- return ((x >> y) | (x << (32-y))) & 0xFFFFFFFF
-
- def _sha256_process(self, c):
- w = [0]*64
- w[0:15] = struct.unpack('!16L', c)
-
- for i in range(16, 64):
- s0 = self._rotr(w[i-15], 7) ^ self._rotr(w[i-15], 18) ^ (w[i-15] >> 3)
- s1 = self._rotr(w[i-2], 17) ^ self._rotr(w[i-2], 19) ^ (w[i-2] >> 10)
- w[i] = (w[i-16] + s0 + w[i-7] + s1) & 0xFFFFFFFF
-
- a,b,c,d,e,f,g,h = self._h
-
- for i in range(64):
- s0 = self._rotr(a, 2) ^ self._rotr(a, 13) ^ self._rotr(a, 22)
- maj = (a & b) ^ (a & c) ^ (b & c)
- t2 = s0 + maj
- s1 = self._rotr(e, 6) ^ self._rotr(e, 11) ^ self._rotr(e, 25)
- ch = (e & f) ^ ((~e) & g)
- t1 = h + s1 + ch + self._k[i] + w[i]
-
- h = g
- g = f
- f = e
- e = (d + t1) & 0xFFFFFFFF
- d = c
- c = b
- b = a
- a = (t1 + t2) & 0xFFFFFFFF
-
- self._h = [(x+y) & 0xFFFFFFFF for x,y in zip(self._h, [a,b,c,d,e,f,g,h])]
-
- def update(self, m):
- if not m:
- return
- if type(m) is not str:
- raise TypeError, '%s() argument 1 must be string, not %s' % (sys._getframe().f_code.co_name, type(m).__name__)
-
- self._buffer += m
- self._counter += len(m)
-
- while len(self._buffer) >= 64:
- self._sha256_process(self._buffer[:64])
- self._buffer = self._buffer[64:]
-
- def digest(self):
- mdi = self._counter & 0x3F
- length = struct.pack('!Q', self._counter<<3)
-
- if mdi < 55:
- padlen = 55-mdi
- else:
- padlen = 119-mdi
-
- r = self.copy()
- r.update('\x80'+('\x00'*padlen)+length)
- return ''.join([struct.pack('!L', i) for i in r._h[:self._output_size]])
-
- def hexdigest(self):
- return self.digest().encode('hex')
-
- def copy(self):
- return copy.deepcopy(self)

0 comments on commit f79725e

Please sign in to comment.
Something went wrong with that request. Please try again.