def test_modhex_decode(self): self.assertEqual(b'', modhex_decode('')) self.assertEqual(b'\x2d\x34\x4e\x83', modhex_decode('dteffuje')) self.assertEqual( b'\x69\xb6\x48\x1c\x8b\xab\xa2\xb6\x0e\x8f\x22\x17\x9b\x58\xcd\x56', modhex_decode('hknhfjbrjnlnldnhcujvddbikngjrtgh') )
def test_modhex_decode(self): self.assertEqual(b"", modhex_decode("")) self.assertEqual(b"\x2d\x34\x4e\x83", modhex_decode("dteffuje")) self.assertEqual( b"\x69\xb6\x48\x1c\x8b\xab\xa2\xb6\x0e\x8f\x22\x17\x9b\x58\xcd\x56", modhex_decode("hknhfjbrjnlnldnhcujvddbikngjrtgh"), )
def program_otp(self, slot, public_id, private_id, key, upload=False, app_version='unknown'): key = a2b_hex(key) public_id = modhex_decode(public_id) private_id = a2b_hex(private_id) upload_url = None with self._open_otp_controller() as controller: if upload: try: upload_url = controller.prepare_upload_key( key, public_id, private_id, serial=self._dev_info['serial'], user_agent='ykman-qt/' + app_version) except PrepareUploadFailed as e: logger.debug('YubiCloud upload failed', exc_info=e) return failure('upload_failed', {'upload_errors': [err.name for err in e.errors]}) controller.program_otp(slot, key, public_id, private_id) logger.debug('YubiOTP successfully programmed.') if upload_url: logger.debug('Upload url: %s', upload_url) return success({'upload_url': upload_url})
def program_otp(self, slot, public_id, private_id, key): key = a2b_hex(key) public_id = modhex_decode(public_id) private_id = a2b_hex(private_id) with self._open_otp_controller() as controller: controller.program_otp(slot, key, public_id, private_id) return success()
def program_otp(self, slot, public_id, private_id, key): try: key = a2b_hex(key) public_id = modhex_decode(public_id) private_id = a2b_hex(private_id) with self._open_device(TRANSPORT.OTP) as dev: controller = OtpController(dev.driver) controller.program_otp(slot, key, public_id, private_id) except YkpersError as e: return e.errno
def program_otp(self, slot, public_id, private_id, key): try: key = a2b_hex(key) public_id = modhex_decode(public_id) private_id = a2b_hex(private_id) with self._open_device(TRANSPORT.OTP) as dev: controller = OtpController(dev.driver) controller.program_otp(slot, key, public_id, private_id) return {'success': True, 'error': None} except YkpersError as e: if e.errno == 3: return {'success': False, 'error': 'write error'} return {'success': False, 'error': str(e)} except Exception as e: return {'success': False, 'error': str(e)}