def decrypt(encrypted, non_interactive=0): blobin = DATA_BLOB(cbData=len(encrypted), pbData=cast(c_char_p(encrypted), POINTER(wintypes.BYTE))) blobout = DATA_BLOB() if not CryptUnprotectData(byref(blobin), u('python-keyring-lib.win32crypto'), None, None, None, CRYPTPROTECT_UI_FORBIDDEN, byref(blobout)): raise OSError("Can't decrypt") data = create_string_buffer(blobout.cbData) memmove(data, blobout.pbData, blobout.cbData) windll.kernel32.LocalFree(blobout.pbData) return data.raw
""" from __future__ import with_statement import string from keyring.util import escape from .util import random_string from keyring import errors DIFFICULT_CHARS = string.whitespace + string.punctuation # unicode only characters # Sourced from The Quick Brown Fox... Pangrams # http://www.columbia.edu/~fdc/utf8/ UNICODE_CHARS = escape.u( """זהכיףסתםלשמועאיךתנצחקרפדעץטובבגן""" """ξεσκεπάζωτηνψυχοφθόραβδελυγμία""" """Съешьжеещёэтихмягкихфранцузскихбулокдавыпейчаю""" """Жълтатадюлябешещастливачепухъткойтоцъфназамръзнакатогьон""" ) # ensure no-ascii chars slip by - watch your editor! assert min(ord(char) for char in UNICODE_CHARS) > 127 class BackendBasicTests(object): """Test for the keyring's basic functions. password_set and password_get """ def setUp(self): self.keyring = self.init_keyring() self.credentials_created = set() def tearDown(self):
""" from __future__ import with_statement import string from keyring.util import escape from .util import random_string from keyring import errors DIFFICULT_CHARS = string.whitespace + string.punctuation # unicode only characters # Sourced from The Quick Brown Fox... Pangrams # http://www.columbia.edu/~fdc/utf8/ UNICODE_CHARS = escape.u( """זהכיףסתםלשמועאיךתנצחקרפדעץטובבגן""" """ξεσκεπάζωτηνψυχοφθόραβδελυγμία""" """Съешьжеещёэтихмягкихфранцузскихбулокдавыпейчаю""" """Жълтатадюлябешещастливачепухъткойтоцъфназамръзнакатогьон""") # ensure no-ascii chars slip by - watch your editor! assert min(ord(char) for char in UNICODE_CHARS) > 127 class BackendBasicTests(object): """Test for the keyring's basic functions. password_set and password_get """ def setUp(self): self.keyring = self.init_keyring() self.credentials_created = set() def tearDown(self):
def test_escape_unescape(self): self.check_escape_unescape("aaaa") self.check_escape_unescape("aaaa bbbb cccc") self.check_escape_unescape(escape.u("Zażółć gęślą jaźń")) self.check_escape_unescape("(((P{{{{'''---; ;; '\"|%^")
def test_escape_unescape(self): self.check_escape_unescape("aaaa") self.check_escape_unescape("aaaa bbbb cccc") self.check_escape_unescape(escape.u("Zażółć gęślą jaźń")) self.check_escape_unescape("(((P{{{{'''---; ;; '\"|%^")