def encryption_oracle(your_string): """Encryption oracle with text input.""" plaintext = "comment1=cooking%20MCs;userdata=" + your_string plaintext += ";comment2=%20like%20a%20pound%20of%20bacon" plaintext = plaintext.replace(";", "").replace("=", "").encode("utf-8") ciphertext = CBC(KEY, IV).encrypt(pkcs7(plaintext, 16)) return ciphertext
def encryption_oracle(your_string): """Encryption oracle with text input.""" unknown_string = b64decode( """Um9sbGluJyBpbiBteSA1LjAKV2l0aCBteSByYWctdG9wIGRvd24gc28gbXkgaGFpci BjYW4gYmxvdwpUaGUgZ2lybGllcyBvbiBzdGFuZGJ5IHdhdmluZyBqdXN0IHRvIHNheSBoaQpEaWQgeW91IHN0b3A/IE5vL CBJIGp1c3QgZHJvdmUgYnkK""") plaintext = your_string + unknown_string plaintext = pkcs7(plaintext, 16) ciphertext = ECB(KEY).encrypt(plaintext) return ciphertext
def encryption_oracle(plaintext): """Encryption oracle with text input.""" keysize = 16 plaintext = generate_bytes(choice(range(5, 11))) + plaintext plaintext += generate_bytes(choice(range(5, 11))) plaintext = pkcs7(plaintext, keysize) key = generate_bytes(keysize) method = choice(range(0, 2)) if method == 0: ciphertext = ECB(key).encrypt(plaintext) else: ciphertext = CBC(key, generate_bytes(keysize)).encrypt(plaintext) return ciphertext
def padding_oracle(): """Padding oracle.""" plaintexts = [ "MDAwMDAwTm93IHRoYXQgdGhlIHBhcnR5IGlzIGp1bXBpbmc=", "MDAwMDAxV2l0aCB0aGUgYmFzcyBraWNrZWQgaW4gYW5kIHRoZSBWZWdhJ3MgYXJlIHB1bXBpbic=", "MDAwMDAyUXVpY2sgdG8gdGhlIHBvaW50LCB0byB0aGUgcG9pbnQsIG5vIGZha2luZw==", "MDAwMDAzQ29va2luZyBNQydzIGxpa2UgYSBwb3VuZCBvZiBiYWNvbg==", "MDAwMDA0QnVybmluZyAnZW0sIGlmIHlvdSBhaW4ndCBxdWljayBhbmQgbmltYmxl", "MDAwMDA1SSBnbyBjcmF6eSB3aGVuIEkgaGVhciBhIGN5bWJhbA==", "MDAwMDA2QW5kIGEgaGlnaCBoYXQgd2l0aCBhIHNvdXBlZCB1cCB0ZW1wbw==", "MDAwMDA3SSdtIG9uIGEgcm9sbCwgaXQncyB0aW1lIHRvIGdvIHNvbG8=", "MDAwMDA4b2xsaW4nIGluIG15IGZpdmUgcG9pbnQgb2g=", "MDAwMDA5aXRoIG15IHJhZy10b3AgZG93biBzbyBteSBoYWlyIGNhbiBibG93" ] plaintext = plaintexts[choice(range(len(plaintexts)))].encode("utf-8") return CBC(KEY, IV).encrypt(pkcs7(plaintext, 16))
def encryption_oracle(email): """Encryption oracle with email input.""" plaintext = profile_for(email) plaintext = pkcs7(plaintext, 16) ciphertext = ECB(KEY).encrypt(plaintext) return ciphertext