Changeset - ccb4a27318f1
[Not reviewed]
default
0 1 1
Laman - 5 years ago 2019-05-29 11:37:14

added readme
2 files changed with 8 insertions and 0 deletions:
0 comments (0 inline, 0 general)
readme.md
Show inline comments
 
new file 100644
 
# Shamira #
 

	
 
Implements Shamir's secret sharing algorithm. Splits a string or a byte sequence byte-per-byte into n<255 shares, with any k of them sufficient for reconstruction of the original input.
 

	
 
Outputs the shares as hexadecimal, Base32 or Base64 encoded strings.
 

	
 
Can be used on its own from the command line by invoking shamira.py or as a library by importing shamira.py.
src/shamira.py
Show inline comments
 
@@ -15,12 +15,13 @@ class DecodingException(SException): pas
 
class MalformedShare(SException): pass
 

	
 

	
 
def _shareByte(secretB,k,n):
 
	if not k<=n<255:
 
		raise InvalidParams("Failed k<=n<255, k={0}, n={1}".format(k,n))
 
	# we might be concerned with zero coefficients degenerating our polynomial, but there's no reason - we still need k shares to determine it is the case
 
	coefs=[int(secretB)]+[int(b) for b in os.urandom(k-1)]
 
	points=[gf256.evaluate(coefs,i) for i in range(1,n+1)]
 
	return points
 

	
 

	
 
def generateRaw(secret,k,n):
0 comments (0 inline, 0 general)