Esempio n. 1
0
def encryption_oracle(p):
    p = os.urandom(randint(5, 5)) + p + os.urandom(randint(5, 10))
    k = os.urandom(KEYSIZE)

    mode = choice(['ECB', 'CBC'])
    print("Encrypting under {0} mode".format(mode))
    if mode == 'ECB':
        return ecb_encrypt(pkcs7_pad(p, 16), k)
    if mode == 'CBC':
        iv = os.urandom(16)
        return cbc_encrypt(pkcs7_pad(p, 16), k, iv)
Esempio n. 2
0
def profile_for(email):
    email = urllib.parse.quote(email, safe='@')
    p = bytes('email=' + email + '&uid=10&role=user', 'utf8')
    return (ecb_encrypt(pkcs7_pad(p, 16), k))
Esempio n. 3
0
def encryption_oracle(p):
    return ecb_encrypt(pkcs7_pad(prefix + p + c, 16), k)
Esempio n. 4
0
def encrypt(p):
    p = ('comment1=cooking%20MCs;userdata=' +
         urllib.parse.quote(p, safe='') +
         ';comment2=%20like%20a%20pound%20of%20bacon')
    p = bytes(p, 'utf8')
    return cbc_encrypt(pkcs7_pad(p, 16), k, iv)
Esempio n. 5
0
#!/usr/bin/env python3
# coding: utf-8
"""
Implement PKCS#7 padding.
https://cryptopals.com/sets/2/challenges/9
"""

from block import pkcs7_pad

bs = b'YELLOW SUBMARINE'

print(pkcs7_pad(bs, 20))