defs/webauthn: initialize with new data
4
defs/webauthn/apps/bitbucket.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Bitbucket",
|
||||
"u2f": "https://bitbucket.org"
|
||||
}
|
BIN
defs/webauthn/apps/bitbucket.png
Normal file
After Width: | Height: | Size: 13 KiB |
4
defs/webauthn/apps/bitfinex.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Bitfinex",
|
||||
"u2f": "https://www.bitfinex.com"
|
||||
}
|
BIN
defs/webauthn/apps/bitfinex.png
Normal file
After Width: | Height: | Size: 24 KiB |
4
defs/webauthn/apps/bitwarden.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Bitwarden",
|
||||
"u2f": "https://vault.bitwarden.com/app-id.json"
|
||||
}
|
4
defs/webauthn/apps/dashlane.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Dashlane",
|
||||
"u2f": "https://www.dashlane.com"
|
||||
}
|
BIN
defs/webauthn/apps/dashlane.png
Normal file
After Width: | Height: | Size: 32 KiB |
5
defs/webauthn/apps/dropbox.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"label": "Dropbox",
|
||||
"u2f": "https://www.dropbox.com/u2f-app-id.json",
|
||||
"webauthn": "www.dropbox.com"
|
||||
}
|
BIN
defs/webauthn/apps/dropbox.png
Normal file
After Width: | Height: | Size: 14 KiB |
4
defs/webauthn/apps/duo.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Duo",
|
||||
"u2f": "https://api-9dcf9b83.duosecurity.com"
|
||||
}
|
BIN
defs/webauthn/apps/duo.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
4
defs/webauthn/apps/fastmail.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "FastMail",
|
||||
"u2f": "https://www.fastmail.com"
|
||||
}
|
BIN
defs/webauthn/apps/fastmail.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
4
defs/webauthn/apps/fedora.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Fedora",
|
||||
"u2f": "https://id.fedoraproject.org/u2f-origins.json"
|
||||
}
|
BIN
defs/webauthn/apps/fedora.png
Normal file
After Width: | Height: | Size: 18 KiB |
4
defs/webauthn/apps/gandi.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Gandi",
|
||||
"u2f": "https://account.gandi.net/api/u2f/trusted_facets.json"
|
||||
}
|
BIN
defs/webauthn/apps/gandi.png
Normal file
After Width: | Height: | Size: 22 KiB |
4
defs/webauthn/apps/github.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "GitHub",
|
||||
"u2f": "https://github.com/u2f/trusted_facets"
|
||||
}
|
BIN
defs/webauthn/apps/github.png
Normal file
After Width: | Height: | Size: 25 KiB |
4
defs/webauthn/apps/gitlab.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "GitLab",
|
||||
"u2f": "https://gitlab.com"
|
||||
}
|
BIN
defs/webauthn/apps/gitlab.png
Normal file
After Width: | Height: | Size: 7.1 KiB |
4
defs/webauthn/apps/google.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Google",
|
||||
"u2f": "https://www.gstatic.com/securitykey/origins.json"
|
||||
}
|
BIN
defs/webauthn/apps/google.png
Normal file
After Width: | Height: | Size: 16 KiB |
4
defs/webauthn/apps/keeper.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Keeper",
|
||||
"u2f": "https://keepersecurity.com"
|
||||
}
|
BIN
defs/webauthn/apps/keeper.png
Normal file
After Width: | Height: | Size: 27 KiB |
4
defs/webauthn/apps/lastpass.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "LastPass",
|
||||
"u2f": "https://lastpass.com"
|
||||
}
|
BIN
defs/webauthn/apps/lastpass.png
Normal file
After Width: | Height: | Size: 9.7 KiB |
4
defs/webauthn/apps/slushpool.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Slush Pool",
|
||||
"u2f": "https://slushpool.com/static/security/u2f.json"
|
||||
}
|
BIN
defs/webauthn/apps/slushpool.png
Normal file
After Width: | Height: | Size: 30 KiB |
4
defs/webauthn/apps/stripe.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "Stripe",
|
||||
"u2f": "https://dashboard.stripe.com"
|
||||
}
|
BIN
defs/webauthn/apps/stripe.png
Normal file
After Width: | Height: | Size: 10 KiB |
4
defs/webauthn/apps/u2f.bin.coffee.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "u2f.bin.coffee",
|
||||
"u2f": "https://u2f.bin.coffee"
|
||||
}
|
4
defs/webauthn/apps/webauthn.bin.coffee.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "webauthn.bin.coffee",
|
||||
"webauthn": "webauthn.bin.coffee"
|
||||
}
|
4
defs/webauthn/apps/webauthn.io.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "WebAuthn.io",
|
||||
"webauthn": "webauthn.io"
|
||||
}
|
4
defs/webauthn/apps/webauthn.me.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "WebAuthn.me",
|
||||
"webauthn": "webauthn.me"
|
||||
}
|
4
defs/webauthn/apps/yubico-demo.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"label": "demo.yubico.com",
|
||||
"webauthn": "demo.yubico.com"
|
||||
}
|
55
defs/webauthn/gen.py
Executable file
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from glob import glob
|
||||
import json
|
||||
from hashlib import sha256
|
||||
|
||||
|
||||
try:
|
||||
opt = sys.argv[1]
|
||||
except:
|
||||
print("Usage: gen.py [core|mcu|check])")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def c_bytes(h):
|
||||
return "{ " + ", ".join(["0x%02x" % x for x in h]) + " }"
|
||||
|
||||
|
||||
def gen_core(data):
|
||||
print("_knownapps = {")
|
||||
print(" # U2F")
|
||||
for d in data:
|
||||
if "u2f" in d:
|
||||
url, label = d["u2f"], d["label"]
|
||||
print(" \"%s\": \"%s\"," % (url, label))
|
||||
print(" # WebAuthn")
|
||||
for d in data:
|
||||
if "webauthn" in d:
|
||||
origin, label = d["webauthn"], d["label"]
|
||||
print(" \"%s\": \"%s\"," % (origin, label))
|
||||
print("}")
|
||||
|
||||
|
||||
def gen_mcu(data):
|
||||
for d in data:
|
||||
if "u2f" in d:
|
||||
url, label = d["u2f"], d["label"]
|
||||
h = sha256(url.encode()).digest()
|
||||
print("\t{\n\t\t// U2F: %s\n\t\t%s,\n\t\t\"%s\"\n\t}," % (url, c_bytes(h), label))
|
||||
if "webauthn" in d:
|
||||
origin, label = d["webauthn"], d["label"]
|
||||
h = sha256(origin.encode()).digest()
|
||||
print("\t{\n\t\t// WebAuthn: %s\n\t\t%s,\n\t\t\"%s\"\n\t}," % (origin, c_bytes(h), label))
|
||||
|
||||
|
||||
|
||||
data = []
|
||||
for fn in sorted(glob("apps/*.json")):
|
||||
d = json.load(open(fn, "rt"))
|
||||
data.append(d)
|
||||
|
||||
if opt == "core":
|
||||
gen_core(data)
|
||||
elif opt == "mcu":
|
||||
gen_mcu(data)
|