diff options
Diffstat (limited to 'udev')
-rw-r--r-- | udev/70-u2f.rules | 243 | ||||
-rw-r--r-- | udev/CMakeLists.txt | 8 | ||||
-rwxr-xr-x | udev/check.sh | 32 | ||||
-rw-r--r-- | udev/fidodevs | 128 | ||||
-rwxr-xr-x | udev/genrules.awk | 79 |
5 files changed, 490 insertions, 0 deletions
diff --git a/udev/70-u2f.rules b/udev/70-u2f.rules new file mode 100644 index 0000000..913bef2 --- /dev/null +++ b/udev/70-u2f.rules @@ -0,0 +1,243 @@ +# Copyright (c) 2020 Yubico AB. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# SPDX-License-Identifier: BSD-2-Clause + +# This file is automatically generated, and should be used with udev 188 +# or newer. + +ACTION!="add|change", GOTO="fido_end" + +# ellipticSecure MIRKey by STMicroelectronics +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ac", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by STMicroelectronics +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="a2ca", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by STMicroelectronics +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="cdab", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Infineon FIDO by Infineon Technologies +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="058b", ATTRS{idProduct}=="022d", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Kensington VeriMark by Synaptics Inc. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="06cb", ATTRS{idProduct}=="0088", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# FS ePass FIDO by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0852", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0853", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0854", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0856", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0858", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# FS MultiPass FIDO U2F by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="085a", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="085b", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="085d", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# BioPass FIDO2 K33 by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0866", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# BioPass FIDO2 K43 by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0867", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Hypersecu HyperFIDO by Feitian Technologies Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0880", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey NEO FIDO by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey NEO OTP+FIDO by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0114", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey NEO FIDO+CCID by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0115", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey NEO OTP+FIDO+CCID by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0116", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Security Key by Yubico by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0120", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Unknown product by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0121", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Gnubby U2F by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0200", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey 4 FIDO by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0402", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey 4 OTP+FIDO by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0403", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey 4 FIDO+CCID by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0406", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey 4 OTP+FIDO+CCID by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0407", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# YubiKey Plus by Yubico AB +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0410", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# U2F Zero by Silicon Laboratories, Inc. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8acf", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# SoloKeys SoloHacker by pid.codes +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="5070", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# SoloKeys SoloBoot by pid.codes +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="50b0", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# SatoshiLabs TREZOR by pid.codes +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="53c1", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# SoloKeys v2 by pid.codes +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="beee", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Google Titan U2F by Google Inc. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5026", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# VASCO SecureClick by VASCO Data Security NV +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1a44", ATTRS{idProduct}=="00bb", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# OnlyKey (FIDO2/U2F) by OpenMoko, Inc. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="60fc", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Neowave Keydo AES by NEOWAVE +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1ae", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Neowave Keydo by NEOWAVE +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Thethis Key by Shenzhen Excelsecu Data Technology Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea8", ATTRS{idProduct}=="f025", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# ExcelSecu FIDO2 Security Key by Shenzhen Excelsecu Data Technology Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea8", ATTRS{idProduct}=="fc25", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# GoTrust Idem Key by NXP Semiconductors +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1fc9", ATTRS{idProduct}=="f143", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Nitrokey FIDO U2F by Clay Logic +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4287", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Nitrokey FIDO2 by Clay Logic +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42b1", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Nitrokey 3C NFC by Clay Logic +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42b2", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Safetech SafeKey by Clay Logic +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42b3", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# CanoKey by Clay Logic +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# JaCarta U2F by Aladdin Software Security R.D. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0101", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# JaCarta U2F by Aladdin Software Security R.D. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0501", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Happlink Security Key by Plug‐up +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Bluink Key by Bluink Ltd +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2abe", ATTRS{idProduct}=="1002", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Blue by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0000", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Nano S Old firmware by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0001", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Nano X Old firmware by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0004", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Blue by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0011", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Blue Legacy by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="0015", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Nano S by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="1011", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Nano S Legacy by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="1015", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Nano X by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="4011", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Ledger Nano X Legacy by LEDGER +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2c97", ATTRS{idProduct}=="4015", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Hypersecu HyperFIDO by Hypersecu Information Systems, Inc. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2ccf", ATTRS{idProduct}=="0880", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# TrustKey Solutions FIDO2 G310 by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4a1a", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# TrustKey Solutions FIDO2 G320 by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="4c2a", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# eWBM FIDO2 Goldengate G500 by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="5c2f", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# TrustKey Solutions FIDO2 T120 by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="a6e9", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# TrustKey Solutions FIDO2 T110 by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="a7f9", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# eWBM FIDO2 Goldengate G450 by eWBM Co., Ltd. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="311f", ATTRS{idProduct}=="f47c", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Idem Key by GoTrustID Inc. +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="32a3", ATTRS{idProduct}=="3201", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# Longmai mFIDO by Unknown vendor +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="4c4d", ATTRS{idProduct}=="f703", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +# SatoshiLabs TREZOR by SatoshiLabs +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="534c", ATTRS{idProduct}=="0001", TAG+="uaccess", GROUP="plugdev", MODE="0660" + +LABEL="fido_end" diff --git a/udev/CMakeLists.txt b/udev/CMakeLists.txt new file mode 100644 index 0000000..abddb80 --- /dev/null +++ b/udev/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright (c) 2018 Yubico AB. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause + +if(UDEV_RULES_DIR) + install(FILES 70-u2f.rules DESTINATION ${UDEV_RULES_DIR}) +endif() diff --git a/udev/check.sh b/udev/check.sh new file mode 100755 index 0000000..804a884 --- /dev/null +++ b/udev/check.sh @@ -0,0 +1,32 @@ +#!/bin/sh -u + +# Copyright (c) 2020 Yubico AB. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause + +sort_by_id() { + awk '{ printf "%d\n", $3 }' | sort -Cnu +} + +if ! grep '^vendor' "$1" | sort_by_id; then + echo unsorted vendor section 1>&2 + exit 1 +fi + +VENDORS=$(grep '^vendor' "$1" | awk '{ print $2 }') +PRODUCTS=$(grep '^product' "$1" | awk '{ print $2 }' | uniq) + +if [ "${VENDORS}" != "${PRODUCTS}" ]; then + echo vendors: "$(echo "${VENDORS}" | tr '\n' ',')" 1>&2 + echo products: "$(echo "${PRODUCTS}" | tr '\n' ',')" 1>&2 + echo vendors and products in different order 1>&2 + exit 2 +fi + +for v in ${VENDORS}; do + if ! grep "^product ${v}" "$1" | sort_by_id; then + echo "${v}": unsorted product section 1>&2 + exit 3 + fi +done diff --git a/udev/fidodevs b/udev/fidodevs new file mode 100644 index 0000000..d8a80fc --- /dev/null +++ b/udev/fidodevs @@ -0,0 +1,128 @@ +# Copyright (c) 2020 Yubico AB. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause + +# After modifying this file, regenerate 70-u2f.rules: +# ./genrules.awk fidodevs > 70-u2f.rules + +# List of known vendors. Sorted by vendor ID. + +vendor STMICRO 0x0483 STMicroelectronics +vendor INFINEON 0x058b Infineon Technologies +vendor SYNAPTICS 0x06cb Synaptics Inc. +vendor FEITIAN 0x096e Feitian Technologies Co., Ltd. +vendor YUBICO 0x1050 Yubico AB +vendor SILICON 0x10c4 Silicon Laboratories, Inc. +vendor PIDCODES 0x1209 pid.codes +vendor GOOGLE 0x18d1 Google Inc. +vendor VASCO 0x1a44 VASCO Data Security NV +vendor OPENMOKO 0x1d50 OpenMoko, Inc. +vendor NEOWAVE 0x1e0d NEOWAVE +vendor EXCELSECU 0x1ea8 Shenzhen Excelsecu Data Technology Co., Ltd. +vendor NXP 0x1fc9 NXP Semiconductors +vendor CLAYLOGIC 0x20a0 Clay Logic +vendor ALLADIN 0x24dc Aladdin Software Security R.D. +vendor PLUGUP 0x2581 Plug‐up +vendor BLUINK 0x2abe Bluink Ltd +vendor LEDGER 0x2c97 LEDGER +vendor HYPERSECU 0x2ccf Hypersecu Information Systems, Inc. +vendor EWBM 0x311f eWBM Co., Ltd. +vendor GOTRUST 0x32a3 GoTrustID Inc. +vendor UNKNOWN1 0x4c4d Unknown vendor +vendor SATOSHI 0x534c SatoshiLabs + +# List of known products. Grouped by vendor; sorted by product ID. + +product STMICRO 0xa2ac ellipticSecure MIRKey +product STMICRO 0xa2ca Unknown product +product STMICRO 0xcdab Unknown product + +product INFINEON 0x022d Infineon FIDO + +product SYNAPTICS 0x0088 Kensington VeriMark + +product FEITIAN 0x0850 FS ePass FIDO +product FEITIAN 0x0852 Unknown product +product FEITIAN 0x0853 Unknown product +product FEITIAN 0x0854 Unknown product +product FEITIAN 0x0856 Unknown product +product FEITIAN 0x0858 Unknown product +product FEITIAN 0x085a FS MultiPass FIDO U2F +product FEITIAN 0x085b Unknown product +product FEITIAN 0x085d Unknown product +product FEITIAN 0x0866 BioPass FIDO2 K33 +product FEITIAN 0x0867 BioPass FIDO2 K43 +product FEITIAN 0x0880 Hypersecu HyperFIDO + +product YUBICO 0x0113 YubiKey NEO FIDO +product YUBICO 0x0114 YubiKey NEO OTP+FIDO +product YUBICO 0x0115 YubiKey NEO FIDO+CCID +product YUBICO 0x0116 YubiKey NEO OTP+FIDO+CCID +product YUBICO 0x0120 Security Key by Yubico +product YUBICO 0x0121 Unknown product +product YUBICO 0x0200 Gnubby U2F +product YUBICO 0x0402 YubiKey 4 FIDO +product YUBICO 0x0403 YubiKey 4 OTP+FIDO +product YUBICO 0x0406 YubiKey 4 FIDO+CCID +product YUBICO 0x0407 YubiKey 4 OTP+FIDO+CCID +product YUBICO 0x0410 YubiKey Plus + +product SILICON 0x8acf U2F Zero + +product PIDCODES 0x5070 SoloKeys SoloHacker +product PIDCODES 0x50b0 SoloKeys SoloBoot +product PIDCODES 0x53c1 SatoshiLabs TREZOR +product PIDCODES 0xbeee SoloKeys v2 + +product GOOGLE 0x5026 Google Titan U2F + +product VASCO 0x00bb VASCO SecureClick + +product OPENMOKO 0x60fc OnlyKey (FIDO2/U2F) + +product NEOWAVE 0xf1ae Neowave Keydo AES +product NEOWAVE 0xf1d0 Neowave Keydo + +product EXCELSECU 0xf025 Thethis Key +product EXCELSECU 0xfc25 ExcelSecu FIDO2 Security Key + +product NXP 0xf143 GoTrust Idem Key + +product CLAYLOGIC 0x4287 Nitrokey FIDO U2F +product CLAYLOGIC 0x42b1 Nitrokey FIDO2 +product CLAYLOGIC 0x42b2 Nitrokey 3C NFC +product CLAYLOGIC 0x42b3 Safetech SafeKey +product CLAYLOGIC 0x42d4 CanoKey + +product ALLADIN 0x0101 JaCarta U2F +product ALLADIN 0x0501 JaCarta U2F + +product PLUGUP 0xf1d0 Happlink Security Key + +product BLUINK 0x1002 Bluink Key + +product LEDGER 0x0000 Ledger Blue +product LEDGER 0x0001 Ledger Nano S Old firmware +product LEDGER 0x0004 Ledger Nano X Old firmware +product LEDGER 0x0011 Ledger Blue +product LEDGER 0x0015 Ledger Blue Legacy +product LEDGER 0x1011 Ledger Nano S +product LEDGER 0x1015 Ledger Nano S Legacy +product LEDGER 0x4011 Ledger Nano X +product LEDGER 0x4015 Ledger Nano X Legacy + +product HYPERSECU 0x0880 Hypersecu HyperFIDO + +product EWBM 0x4a1a TrustKey Solutions FIDO2 G310 +product EWBM 0x4c2a TrustKey Solutions FIDO2 G320 +product EWBM 0x5c2f eWBM FIDO2 Goldengate G500 +product EWBM 0xa6e9 TrustKey Solutions FIDO2 T120 +product EWBM 0xa7f9 TrustKey Solutions FIDO2 T110 +product EWBM 0xf47c eWBM FIDO2 Goldengate G450 + +product GOTRUST 0x3201 Idem Key + +product UNKNOWN1 0xf703 Longmai mFIDO + +product SATOSHI 0x0001 SatoshiLabs TREZOR diff --git a/udev/genrules.awk b/udev/genrules.awk new file mode 100755 index 0000000..3dad667 --- /dev/null +++ b/udev/genrules.awk @@ -0,0 +1,79 @@ +#!/usr/bin/awk -f + +# Copyright (c) 2020 Yubico AB. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. +# SPDX-License-Identifier: BSD-2-Clause + +NR == 1 { + print "# Copyright (c) 2020 Yubico AB. All rights reserved." + print "#" + print "# Redistribution and use in source and binary forms, with or without" + print "# modification, are permitted provided that the following conditions are" + print "# met:" + print "# " + print "# 1. Redistributions of source code must retain the above copyright" + print "# notice, this list of conditions and the following disclaimer." + print "# 2. Redistributions in binary form must reproduce the above copyright" + print "# notice, this list of conditions and the following disclaimer in" + print "# the documentation and/or other materials provided with the" + print "# distribution." + print "# " + print "# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS" + print "# \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT" + print "# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR" + print "# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT" + print "# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL," + print "# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT" + print "# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE," + print "# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY" + print "# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT" + print "# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE" + print "# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + print "#" + print "# SPDX-License-Identifier: BSD-2-Clause" + print "" + print "# This file is automatically generated, and should be used with udev 188" + print "# or newer." + print "" + print "ACTION!=\"add|change\", GOTO=\"fido_end\"" + + next +} + +$1 == "vendor" { + sub("0x", "", $3) + vendors[$2, "id"] = $3 + + f = 4 + while (f <= NF) { + vendors[$2, "name"] = vendors[$2, "name"] " " $f + f++ + } +} + +$1 == "product" { + sub("0x", "", $3) + name = "" + + f = 4 + while (f <= NF) { + name = name " " $f + f++ + } + + line = "\n#" name " by" vendors[$2, "name"]"\n" + line = line"KERNEL==\"hidraw*\"" + line = line", SUBSYSTEM==\"hidraw\"" + line = line", ATTRS{idVendor}==\""vendors[$2, "id"]"\"" + line = line", ATTRS{idProduct}==\""$3"\"" + line = line", TAG+=\"uaccess\"" + line = line", GROUP=\"plugdev\"" + line = line", MODE=\"0660\"" + + print line +} + +END { + print "\nLABEL=\"fido_end\"" +} |