/usr/lib/python2.7/dist-packages/yubico/yubikey.py is in python-yubico 1.3.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | """
module for accessing a YubiKey
In an attempt to support any future versions of the YubiKey which
might not be USB HID devices, you should always use the yubikey.find_key()
(or better yet, yubico.find_yubikey()) function to initialize
communication with YubiKeys.
Example usage (if using this module directly, see base module yubico) :
    import yubico.yubikey
    try:
        YK = yubico.yubikey.find_key()
        print "Version : %s " % YK.version()
    except yubico.yubico_exception.YubicoError as inst:
        print "ERROR: %s" % inst.reason
"""
# Copyright (c) 2010, 2011, 2012 Yubico AB
# See the file COPYING for licence statement.
__all__ = [
    # constants
    'RESP_TIMEOUT_WAIT_FLAG',
    'RESP_PENDING_FLAG',
    'SLOT_WRITE_FLAG',
    # functions
    'find_key',
    # classes
    'YubiKey',
    'YubiKeyTimeout',
]
from .yubico_version  import __version__
from .yubikey_base import YubiKeyError, YubiKeyTimeout, YubiKeyVersionError, YubiKeyCapabilities, YubiKey
from .yubikey_usb_hid import YubiKeyUSBHID, YubiKeyHIDDevice, YubiKeyUSBHIDError
from .yubikey_neo_usb_hid import YubiKeyNEO_USBHID
from .yubikey_4_usb_hid import YubiKey4_USBHID
def find_key(debug=False, skip=0):
    """
    Locate a connected YubiKey. Throws an exception if none is found.
    This function is supposed to be possible to extend if any other YubiKeys
    appear in the future.
    Attributes :
        skip  -- number of YubiKeys to skip
        debug -- True or False
    """
    try:
        hid_device = YubiKeyHIDDevice(debug, skip)
        yk_version = hid_device.status().ykver()
        if (2, 1, 4) <= yk_version <= (2, 1, 9):
            return YubiKeyNEO_USBHID(debug, skip, hid_device)
        if yk_version < (3, 0, 0):
            return YubiKeyUSBHID(debug, skip, hid_device)
        if yk_version < (4, 0, 0):
            return YubiKeyNEO_USBHID(debug, skip, hid_device)
        return YubiKey4_USBHID(debug, skip, hid_device)
    except YubiKeyUSBHIDError as inst:
        if 'No USB YubiKey found' in str(inst):
            # generalize this error
            raise YubiKeyError('No YubiKey found')
        else:
            raise
 |