python 3 pycrypto iv must be 16 bytes long












0















so I have been trying to build an AES encryption program based off of the github pycrypto guide link to github however when I go to decode an error shows up:



Traceback (most recent call last):
File "/home/pi/Desktop/aes/newAES.py", line 24, in <module>
print(decrypt(key,msg,iv))
File "/home/pi/Desktop/aes/newAES.py", line 13, in decrypt
cipher = AES.new(key,AES.MODE_CFB)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 94, in new
return AESCipher(key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
self._cipher = factory.new(key, *args, **kwargs)
ValueError: IV must be 16 bytes long


my code is:



from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
def encrypt(key,msg):
if key == 0:
key=get_random_bytes(16)
print("key: "+key)
iv = get_random_bytes(16)
print('iv: '+str(iv))
cipher = AES.new(key,AES.MODE_CFB,iv)
ciphertext= cipher.decrypt(msg)
return("your encrypted message: "+str(ciphertext))
def decrypt(key,ciphertext,iv):
cipher = AES.new(key,AES.MODE_CFB)
msg = cipher.decrypt(ciphertext)
ed = input('(e)ncrypt or (d)ecrypt: ')
if ed=='e':
key = input('16 digit key: ')
msg = input('message: ')
print(encrypt(key,msg))
elif ed =='d':
key = input('16 digit key: ')
iv = bytes(input('iv: '),'utf-8')
msg = bytes(input('encrypted message:'),'utf-8')
print(decrypt(key,msg,iv))


I would appreciate any help offered on solving this issue, hopefully it isn't some stupid error










share|improve this question













migrated from superuser.com Jan 10 at 14:48


This question came from our site for computer enthusiasts and power users.



















  • You forgot to pass the IV to the AES.new() call in decrypt().

    – glibdud
    Jan 10 at 15:56











  • nope same error thx tho

    – Hawk p
    Jan 11 at 0:59
















0















so I have been trying to build an AES encryption program based off of the github pycrypto guide link to github however when I go to decode an error shows up:



Traceback (most recent call last):
File "/home/pi/Desktop/aes/newAES.py", line 24, in <module>
print(decrypt(key,msg,iv))
File "/home/pi/Desktop/aes/newAES.py", line 13, in decrypt
cipher = AES.new(key,AES.MODE_CFB)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 94, in new
return AESCipher(key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
self._cipher = factory.new(key, *args, **kwargs)
ValueError: IV must be 16 bytes long


my code is:



from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
def encrypt(key,msg):
if key == 0:
key=get_random_bytes(16)
print("key: "+key)
iv = get_random_bytes(16)
print('iv: '+str(iv))
cipher = AES.new(key,AES.MODE_CFB,iv)
ciphertext= cipher.decrypt(msg)
return("your encrypted message: "+str(ciphertext))
def decrypt(key,ciphertext,iv):
cipher = AES.new(key,AES.MODE_CFB)
msg = cipher.decrypt(ciphertext)
ed = input('(e)ncrypt or (d)ecrypt: ')
if ed=='e':
key = input('16 digit key: ')
msg = input('message: ')
print(encrypt(key,msg))
elif ed =='d':
key = input('16 digit key: ')
iv = bytes(input('iv: '),'utf-8')
msg = bytes(input('encrypted message:'),'utf-8')
print(decrypt(key,msg,iv))


I would appreciate any help offered on solving this issue, hopefully it isn't some stupid error










share|improve this question













migrated from superuser.com Jan 10 at 14:48


This question came from our site for computer enthusiasts and power users.



















  • You forgot to pass the IV to the AES.new() call in decrypt().

    – glibdud
    Jan 10 at 15:56











  • nope same error thx tho

    – Hawk p
    Jan 11 at 0:59














0












0








0








so I have been trying to build an AES encryption program based off of the github pycrypto guide link to github however when I go to decode an error shows up:



Traceback (most recent call last):
File "/home/pi/Desktop/aes/newAES.py", line 24, in <module>
print(decrypt(key,msg,iv))
File "/home/pi/Desktop/aes/newAES.py", line 13, in decrypt
cipher = AES.new(key,AES.MODE_CFB)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 94, in new
return AESCipher(key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
self._cipher = factory.new(key, *args, **kwargs)
ValueError: IV must be 16 bytes long


my code is:



from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
def encrypt(key,msg):
if key == 0:
key=get_random_bytes(16)
print("key: "+key)
iv = get_random_bytes(16)
print('iv: '+str(iv))
cipher = AES.new(key,AES.MODE_CFB,iv)
ciphertext= cipher.decrypt(msg)
return("your encrypted message: "+str(ciphertext))
def decrypt(key,ciphertext,iv):
cipher = AES.new(key,AES.MODE_CFB)
msg = cipher.decrypt(ciphertext)
ed = input('(e)ncrypt or (d)ecrypt: ')
if ed=='e':
key = input('16 digit key: ')
msg = input('message: ')
print(encrypt(key,msg))
elif ed =='d':
key = input('16 digit key: ')
iv = bytes(input('iv: '),'utf-8')
msg = bytes(input('encrypted message:'),'utf-8')
print(decrypt(key,msg,iv))


I would appreciate any help offered on solving this issue, hopefully it isn't some stupid error










share|improve this question














so I have been trying to build an AES encryption program based off of the github pycrypto guide link to github however when I go to decode an error shows up:



Traceback (most recent call last):
File "/home/pi/Desktop/aes/newAES.py", line 24, in <module>
print(decrypt(key,msg,iv))
File "/home/pi/Desktop/aes/newAES.py", line 13, in decrypt
cipher = AES.new(key,AES.MODE_CFB)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 94, in new
return AESCipher(key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/AES.py", line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File "/usr/lib/python3/dist-packages/Crypto/Cipher/blockalgo.py", line 141, in __init__
self._cipher = factory.new(key, *args, **kwargs)
ValueError: IV must be 16 bytes long


my code is:



from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
def encrypt(key,msg):
if key == 0:
key=get_random_bytes(16)
print("key: "+key)
iv = get_random_bytes(16)
print('iv: '+str(iv))
cipher = AES.new(key,AES.MODE_CFB,iv)
ciphertext= cipher.decrypt(msg)
return("your encrypted message: "+str(ciphertext))
def decrypt(key,ciphertext,iv):
cipher = AES.new(key,AES.MODE_CFB)
msg = cipher.decrypt(ciphertext)
ed = input('(e)ncrypt or (d)ecrypt: ')
if ed=='e':
key = input('16 digit key: ')
msg = input('message: ')
print(encrypt(key,msg))
elif ed =='d':
key = input('16 digit key: ')
iv = bytes(input('iv: '),'utf-8')
msg = bytes(input('encrypted message:'),'utf-8')
print(decrypt(key,msg,iv))


I would appreciate any help offered on solving this issue, hopefully it isn't some stupid error







python python-3.x aes






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 10 at 2:37









Hawk pHawk p

64




64




migrated from superuser.com Jan 10 at 14:48


This question came from our site for computer enthusiasts and power users.









migrated from superuser.com Jan 10 at 14:48


This question came from our site for computer enthusiasts and power users.















  • You forgot to pass the IV to the AES.new() call in decrypt().

    – glibdud
    Jan 10 at 15:56











  • nope same error thx tho

    – Hawk p
    Jan 11 at 0:59



















  • You forgot to pass the IV to the AES.new() call in decrypt().

    – glibdud
    Jan 10 at 15:56











  • nope same error thx tho

    – Hawk p
    Jan 11 at 0:59

















You forgot to pass the IV to the AES.new() call in decrypt().

– glibdud
Jan 10 at 15:56





You forgot to pass the IV to the AES.new() call in decrypt().

– glibdud
Jan 10 at 15:56













nope same error thx tho

– Hawk p
Jan 11 at 0:59





nope same error thx tho

– Hawk p
Jan 11 at 0:59












1 Answer
1






active

oldest

votes


















0














The problem with iv is that it consists of random bytes, but it is being read into your program as a string. Calling bytes on that string does not do what you expect.



>>> iv = b'xbax0eyO8x17xcfx97=xf2&l34#('
>>> siv = str(iv)
>>> siv
"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Note 'b' is part of the string
>>> biv = bytes(siv, 'utf-8')
>>> biv
b"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Now there are two 'b's!


You can resolve this by using ast.literal_eval:



>>> ast.literal_eval(siv)
b'xbax0eyO8x17xcfx97=xf2&l34#('


Here's a working version of your code - I removed the need to copy/paste iv, but the same observations about inputting bytes applies to the ciphertext.



import ast

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes


def encrypt(key, msg):
iv = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_CFB, iv)
ciphertext = cipher.encrypt(msg) # Use the right method here
return iv + ciphertext


def decrypt(key, ciphertext):
iv = ciphertext[:16]
ciphertext = ciphertext[16:]
cipher = AES.new(key, AES.MODE_CFB, iv)
msg = cipher.decrypt(ciphertext)
return msg.decode("utf-8")


if __name__ == "__main__":
ed = input("(e)ncrypt or (d)ecrypt: ")
if ed == "e":
key = input("16 digit key: ")
msg = input("message: ")
print("Encrypted message: ", encrypt(key, msg))
elif ed == "d":
key = input("16 digit key: ")
smsg = input("encrypted message: ")
msg = ast.literal_eval(smsg)
print("Decrypted message: ", decrypt(key, msg))


The code in action:



(e)ncrypt or (d)ecrypt: e
16 digit key: abcdabcdabcdabcd
message: Spam, spam, spam
Encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'

(e)ncrypt or (d)ecrypt: d
16 digit key: abcdabcdabcdabcd
encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'
Decrypted message: Spam, spam, spam





share|improve this answer
























  • thank you so much, that worked!!!

    – Hawk p
    Jan 11 at 23:33











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54131181%2fpython-3-pycrypto-iv-must-be-16-bytes-long%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














The problem with iv is that it consists of random bytes, but it is being read into your program as a string. Calling bytes on that string does not do what you expect.



>>> iv = b'xbax0eyO8x17xcfx97=xf2&l34#('
>>> siv = str(iv)
>>> siv
"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Note 'b' is part of the string
>>> biv = bytes(siv, 'utf-8')
>>> biv
b"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Now there are two 'b's!


You can resolve this by using ast.literal_eval:



>>> ast.literal_eval(siv)
b'xbax0eyO8x17xcfx97=xf2&l34#('


Here's a working version of your code - I removed the need to copy/paste iv, but the same observations about inputting bytes applies to the ciphertext.



import ast

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes


def encrypt(key, msg):
iv = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_CFB, iv)
ciphertext = cipher.encrypt(msg) # Use the right method here
return iv + ciphertext


def decrypt(key, ciphertext):
iv = ciphertext[:16]
ciphertext = ciphertext[16:]
cipher = AES.new(key, AES.MODE_CFB, iv)
msg = cipher.decrypt(ciphertext)
return msg.decode("utf-8")


if __name__ == "__main__":
ed = input("(e)ncrypt or (d)ecrypt: ")
if ed == "e":
key = input("16 digit key: ")
msg = input("message: ")
print("Encrypted message: ", encrypt(key, msg))
elif ed == "d":
key = input("16 digit key: ")
smsg = input("encrypted message: ")
msg = ast.literal_eval(smsg)
print("Decrypted message: ", decrypt(key, msg))


The code in action:



(e)ncrypt or (d)ecrypt: e
16 digit key: abcdabcdabcdabcd
message: Spam, spam, spam
Encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'

(e)ncrypt or (d)ecrypt: d
16 digit key: abcdabcdabcdabcd
encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'
Decrypted message: Spam, spam, spam





share|improve this answer
























  • thank you so much, that worked!!!

    – Hawk p
    Jan 11 at 23:33
















0














The problem with iv is that it consists of random bytes, but it is being read into your program as a string. Calling bytes on that string does not do what you expect.



>>> iv = b'xbax0eyO8x17xcfx97=xf2&l34#('
>>> siv = str(iv)
>>> siv
"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Note 'b' is part of the string
>>> biv = bytes(siv, 'utf-8')
>>> biv
b"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Now there are two 'b's!


You can resolve this by using ast.literal_eval:



>>> ast.literal_eval(siv)
b'xbax0eyO8x17xcfx97=xf2&l34#('


Here's a working version of your code - I removed the need to copy/paste iv, but the same observations about inputting bytes applies to the ciphertext.



import ast

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes


def encrypt(key, msg):
iv = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_CFB, iv)
ciphertext = cipher.encrypt(msg) # Use the right method here
return iv + ciphertext


def decrypt(key, ciphertext):
iv = ciphertext[:16]
ciphertext = ciphertext[16:]
cipher = AES.new(key, AES.MODE_CFB, iv)
msg = cipher.decrypt(ciphertext)
return msg.decode("utf-8")


if __name__ == "__main__":
ed = input("(e)ncrypt or (d)ecrypt: ")
if ed == "e":
key = input("16 digit key: ")
msg = input("message: ")
print("Encrypted message: ", encrypt(key, msg))
elif ed == "d":
key = input("16 digit key: ")
smsg = input("encrypted message: ")
msg = ast.literal_eval(smsg)
print("Decrypted message: ", decrypt(key, msg))


The code in action:



(e)ncrypt or (d)ecrypt: e
16 digit key: abcdabcdabcdabcd
message: Spam, spam, spam
Encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'

(e)ncrypt or (d)ecrypt: d
16 digit key: abcdabcdabcdabcd
encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'
Decrypted message: Spam, spam, spam





share|improve this answer
























  • thank you so much, that worked!!!

    – Hawk p
    Jan 11 at 23:33














0












0








0







The problem with iv is that it consists of random bytes, but it is being read into your program as a string. Calling bytes on that string does not do what you expect.



>>> iv = b'xbax0eyO8x17xcfx97=xf2&l34#('
>>> siv = str(iv)
>>> siv
"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Note 'b' is part of the string
>>> biv = bytes(siv, 'utf-8')
>>> biv
b"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Now there are two 'b's!


You can resolve this by using ast.literal_eval:



>>> ast.literal_eval(siv)
b'xbax0eyO8x17xcfx97=xf2&l34#('


Here's a working version of your code - I removed the need to copy/paste iv, but the same observations about inputting bytes applies to the ciphertext.



import ast

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes


def encrypt(key, msg):
iv = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_CFB, iv)
ciphertext = cipher.encrypt(msg) # Use the right method here
return iv + ciphertext


def decrypt(key, ciphertext):
iv = ciphertext[:16]
ciphertext = ciphertext[16:]
cipher = AES.new(key, AES.MODE_CFB, iv)
msg = cipher.decrypt(ciphertext)
return msg.decode("utf-8")


if __name__ == "__main__":
ed = input("(e)ncrypt or (d)ecrypt: ")
if ed == "e":
key = input("16 digit key: ")
msg = input("message: ")
print("Encrypted message: ", encrypt(key, msg))
elif ed == "d":
key = input("16 digit key: ")
smsg = input("encrypted message: ")
msg = ast.literal_eval(smsg)
print("Decrypted message: ", decrypt(key, msg))


The code in action:



(e)ncrypt or (d)ecrypt: e
16 digit key: abcdabcdabcdabcd
message: Spam, spam, spam
Encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'

(e)ncrypt or (d)ecrypt: d
16 digit key: abcdabcdabcdabcd
encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'
Decrypted message: Spam, spam, spam





share|improve this answer













The problem with iv is that it consists of random bytes, but it is being read into your program as a string. Calling bytes on that string does not do what you expect.



>>> iv = b'xbax0eyO8x17xcfx97=xf2&l34#('
>>> siv = str(iv)
>>> siv
"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Note 'b' is part of the string
>>> biv = bytes(siv, 'utf-8')
>>> biv
b"b'\xba\x0eyO8\x17\xcf\x97=\xf2&l34#('" # Now there are two 'b's!


You can resolve this by using ast.literal_eval:



>>> ast.literal_eval(siv)
b'xbax0eyO8x17xcfx97=xf2&l34#('


Here's a working version of your code - I removed the need to copy/paste iv, but the same observations about inputting bytes applies to the ciphertext.



import ast

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes


def encrypt(key, msg):
iv = get_random_bytes(16)
cipher = AES.new(key, AES.MODE_CFB, iv)
ciphertext = cipher.encrypt(msg) # Use the right method here
return iv + ciphertext


def decrypt(key, ciphertext):
iv = ciphertext[:16]
ciphertext = ciphertext[16:]
cipher = AES.new(key, AES.MODE_CFB, iv)
msg = cipher.decrypt(ciphertext)
return msg.decode("utf-8")


if __name__ == "__main__":
ed = input("(e)ncrypt or (d)ecrypt: ")
if ed == "e":
key = input("16 digit key: ")
msg = input("message: ")
print("Encrypted message: ", encrypt(key, msg))
elif ed == "d":
key = input("16 digit key: ")
smsg = input("encrypted message: ")
msg = ast.literal_eval(smsg)
print("Decrypted message: ", decrypt(key, msg))


The code in action:



(e)ncrypt or (d)ecrypt: e
16 digit key: abcdabcdabcdabcd
message: Spam, spam, spam
Encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'

(e)ncrypt or (d)ecrypt: d
16 digit key: abcdabcdabcdabcd
encrypted message: b'xa4?xa9RI>x1fxb5*xb2,NWNx0cxfd"yB|x1fx82x96xd5xb4xd4x1d&x8bMxdbx07'
Decrypted message: Spam, spam, spam






share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 11 at 8:14









snakecharmerbsnakecharmerb

10.3k42249




10.3k42249













  • thank you so much, that worked!!!

    – Hawk p
    Jan 11 at 23:33



















  • thank you so much, that worked!!!

    – Hawk p
    Jan 11 at 23:33

















thank you so much, that worked!!!

– Hawk p
Jan 11 at 23:33





thank you so much, that worked!!!

– Hawk p
Jan 11 at 23:33


















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54131181%2fpython-3-pycrypto-iv-must-be-16-bytes-long%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

Mangá

Eduardo VII do Reino Unido