Exemplo n.º 1
0
 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')
     )
Exemplo n.º 2
0
 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"),
     )
Exemplo n.º 3
0
    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})
Exemplo n.º 4
0
 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()
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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)}