def build_params( args, conf ) : log_m = random.randint( int( conf.get( 'log_m_min', 'aes_padding' ) ), int( conf.get( 'log_m_max', 'aes_padding' ) ) ) log_k_enc = 128 ; log_b_enc = 128 ; log_k_mac = 128 k_enc = util.bytes_rand( log_k_enc / 8 ) k_mac = util.bytes_rand( log_k_mac / 8 ) iv = util.bytes_rand( int( math.ceil( log_b_enc / 8 ) ) ) m = util.bytes_rand( int( math.ceil( log_m / 8 ) ) ) if ( conf.get( 'challenge', 'aes_padding' ) == 'uid_hash' ) : m = bytearray( ( SHA.new( data = args.uid ) ).digest() ) + m elif ( conf.get( 'challenge', 'aes_padding' ) == 'uid_text' ) : m = bytearray( args.uid ) + m tau = bytearray( HMAC.new( str( k_mac ), digestmod = SHA, msg = str( m ) ).digest() ) rho = util.padding( m + tau, log_b_enc / 8 ) c = bytearray( AES.new( str( k_enc ), AES.MODE_CBC, IV = str( iv ) ).encrypt( str( m + tau + rho ) ) ) return [ ( 'k_enc', k_enc, False ), ( 'k_mac', k_mac, False ), ( 'tau', tau, False ), ( 'rho', rho, False ), ( 'iv', iv, True ), ( 'm', m, False ), ( 'c', c, True ) ]
def build_params( args, conf ) : len_P = random.randint( int( conf.get( 'len_P_min', 'demo' ) ), int( conf.get( 'len_P_max', 'demo' ) ) ) if ( conf.get( 'alphabet', 'demo' ) == 'binary' ) : P = util.bytes_rand( len_P ) + '\x00' elif ( conf.get( 'alphabet', 'demo' ) == 'ascii' ) : P = util.bytes_rand( len_P, bytes = string.ascii_lowercase ) + '\x00' return [ ( 'P', P, False ) ]
def build_params(args, conf): log_N = random.randint(int(conf.get('log_N_min', 'rsa_padding')), int(conf.get('log_N_max', 'rsa_padding'))) log_m = random.randint(int(conf.get('log_m_min', 'rsa_padding')), int(conf.get('log_m_max', 'rsa_padding'))) log_L = random.randint(int(conf.get('log_L_min', 'rsa_padding')), int(conf.get('log_L_max', 'rsa_padding'))) k = int(math.ceil(log_N / 8)) B = 2**(8 * (k - 1)) while (True): p, q, N, e, d = util.keygen_rsa(log_N) if ((int(math.ceil(math.log(N, 2**8))) == k) and ((2 * B) < N)): break m = util.bytes_rand(int(math.ceil(log_m / 8))) L = util.bytes_rand(int(math.ceil(log_L / 8))) if (conf.get('challenge', 'rsa_padding') == 'user_hash'): m = bytearray((SHA.new(data=args.user)).digest()) + m elif (conf.get('challenge', 'rsa_padding') == 'user_text'): m = bytearray(args.user) + m if (conf.get('hash', 'rsa_padding') == 'sha1'): H = SHA elif (conf.get('hash', 'rsa_padding') == 'sha256'): H = SHA256 elif (conf.get('hash', 'rsa_padding') == 'sha384'): H = SHA384 elif (conf.get('hash', 'rsa_padding') == 'sha512'): H = SHA512 c = bytearray( OAEP.new(RSA.construct((N, e, d)), label=L, hashAlgo=H).encrypt(str(m)).zfill(k)) return [('p', p, False), ('q', q, False), ('N', N, True), ('e', e, True), ('d', d, False), ('L', L, True), ('m', m, False), ('c', c, True)]
def build_params( args, conf ) : if ( conf.get( 'curve', 'ecc_invalid' ) == 'nist-p-192' ) : log_k = 192 elif ( conf.get( 'curve', 'ecc_invalid' ) == 'nist-p-224' ) : log_k = 224 elif ( conf.get( 'curve', 'ecc_invalid' ) == 'nist-p-256' ) : log_k = 256 elif ( conf.get( 'curve', 'ecc_invalid' ) == 'nist-p-384' ) : log_k = 384 elif ( conf.get( 'curve', 'ecc_invalid' ) == 'nist-p-521' ) : log_k = 521 return [ ( 'k', util.bytes_rand( log_k / 8 ), False ) ]
def build_params( args, conf ) : return [ ( 'k', util.bytes_rand( 128 / 8 ), False ) ]