diff --git a/common/defs/fido/invity.json b/common/defs/fido/invity.json new file mode 100644 index 0000000000..399b5487ce --- /dev/null +++ b/common/defs/fido/invity.json @@ -0,0 +1,4 @@ +{ + "name": "Invity", + "webauthn": ["invity.io"] +} diff --git a/common/defs/fido/invity.png b/common/defs/fido/invity.png new file mode 100644 index 0000000000..12023e42b1 Binary files /dev/null and b/common/defs/fido/invity.png differ diff --git a/core/src/apps/webauthn/knownapps.py b/core/src/apps/webauthn/knownapps.py index 54c6d0f6c6..8dc3669946 100644 --- a/core/src/apps/webauthn/knownapps.py +++ b/core/src/apps/webauthn/knownapps.py @@ -211,6 +211,14 @@ def by_rp_id_hash(rp_id_hash: bytes) -> FIDOApp | None: use_sign_count=None, use_self_attestation=None, ) + if rp_id_hash == b"\x9c\x2e\x02\xc4\xff\xf7\x76\x62\xe1\xde\x80\x3b\x43\x9e\x11\xc0\xdd\x0c\x3f\x66\x42\xce\xc4\xe6\x84\xd6\x49\x87\x0a\xd1\xbb\x59": + # WebAuthn key for Invity + return FIDOApp( + label="invity.io", + icon="apps/webauthn/res/icon_invity.toif", + use_sign_count=None, + use_self_attestation=None, + ) if rp_id_hash == b"\x53\xa1\x5b\xa4\x2a\x7c\x03\x25\xb8\xdb\xee\x28\x96\x34\xa4\x8f\x58\xae\xa3\x24\x66\x45\xd5\xff\x41\x8f\x9b\xb8\x81\x98\x85\xa9": # U2F key for Keeper return FIDOApp( diff --git a/core/src/apps/webauthn/res/icon_invity.toif b/core/src/apps/webauthn/res/icon_invity.toif new file mode 100644 index 0000000000..d13db26677 Binary files /dev/null and b/core/src/apps/webauthn/res/icon_invity.toif differ diff --git a/core/src/trezor/res/resources.py b/core/src/trezor/res/resources.py index d1db8e5ef4..b9052997a2 100644 --- a/core/src/trezor/res/resources.py +++ b/core/src/trezor/res/resources.py @@ -88,6 +88,8 @@ def load_resource(name: str) -> bytes: return b'TOIF@\x00@\x00\xac\x03\x00\x00\xed\x92?S\xe2@\x18\xc6w$\xccX\xa6\xb4\xcc\x900CI)]\x18\xb1\xa0\xa3\xa5\xd316t\xb6t!\xb1\xf0\xbe\x81C\x833\xa1\xb8\xa1\xb2\xbeF\xb9\xd8\xf1!0\xc35\x0c\x95)\xb3\xcc\x9c\xcb\x1a\xf2g\xff\x90M\xa26\xbe[]ny\x9e\xf5\xf7{\x01\xf8\x19r\xe6\xbdy\xef\xfb\xf2\xcc\xd3\xaaW\xf5.\x1be\xb5_6P\x9ey\x9a\xf5\xfe\xd9\x1d\xba\xaf\x9ae\xf5\xab&\xca;\xbb\xcbz\xdf}F\xf7\xdd\xe7\xb2\xfa\xc5\xf20\xad\xf2\x0c\x88\xe6aZ\xe5\x19\x10\xcd\xc3\xb4\xca3 \x96\x17\xd1*\xc7\x80h^D\x0b\x1d\xef\xa2h\xff\xd1M<\xef\xb0\x81\x88\x16:\xcec\xd1~\xe71\x9ew\xc8@\x92\x16:\xfaI\x91v\xfd$\x9d\xc77\x90\xa4U\xdc\x80w\x91\xce;\xba\xc9N\xab\xb8\x01\xb1<\x92V\xd5\xab\x170\xa0\x9f\xd4=2\x91\x9dG\xd2*f@4\x8f\xa4U\xcc\x80X\x1e\x9dV~\x03\xa2ytZ\xe8\xcc{y\xfa\xe7=V\x1e\xdd\x00\x9d\x16:W\xf7y\xfa\xaf\xeeYy4\x03,Z\x98\x98r,\xda\xae\x1c\xf3\xf2H\x03lZ\xf9\x0c\xf0\xf3H\x03lZ\xf9\x0c\x88\xe5\xf1h\xe51 \x9a\xf7\xd0\xef\xf8\x1a\xf7Hs\xebw\xf6#\xcd\xf9i\x1d\xff\xa1\x1f\xef\xb7f\x0e4\x02\xde\x91\xfc\xaa\x97\xfdH>?\xcd\x81\xd6,j\xd7ei+m\x8d\x03/\xa8gn\xaf{\xfc$\x03\xa2>]\x0e\xfb_\xfb\xe8\xdf\xef\x87\xfb\x82\xdbu\xd6\xfe\xdb5\x97$\xc4m\xaf\xfd\x88\xfeG\xff\xd6\xe1\xfc\xee\xdf[\xd6\xfe\x7fo\x1c\xf2A\xd8\x15\x1a\xc0\xf4\xf1q\xa1\xcd\xfce\'\xa3\x81\xba\xd7af\xd8\x81\x0b\xa36l\xc0\xecF_\xa4\xad\r\x8b\x1a\xe0\xd1\xb7a\xbc\xcb\xec\xa2~u\x1c\xff&m5X\xcc\x00\x9b\xbe\x06\x93M\xea\x18\xf5\xbb\x9b\xe4\xd7w\x0b\x05\x0c\xb0\xe9\xbb\x01\xd1\xb3I\xd3\xc7g\xc5\xdc\x82\xeb\x83\x06\xae\xd7,\xf3+H6\x99\xdd4}|\x1c\x98\xd7\x00\x8b\xbe\x03i=\xea\x98\xa4\x8f\x8f\x01\xf3\x18`\xd2\x87\xf4\x16w\xc3\xea\x7f?P\xdc\x00\x9d\xbe\x04Y\x1d\xee\xa66`\xf6o\x1da\x034\xfaN\xc0n\xa8\r\xd0\x06\xb2\x18\xb8\x94=\xe4\x19\xa0\xd1\xb7\x03\x97\xc9\xde\xec\x82\xddL\x94\xca\x82~\xc7\x86"\x06h\xf4mF{e1Q@lFC\xfa=\x8dx\xc1\x0b\xd3\xc0\x0bA_c\xb4\x8f\x86\x80\x98v\x8b\xee\xc1\xcdh\x80\xa4\xbf\n\xe8\xdc\xdb-@\x1d]\xb6f\xe4\xfd\x15\xb1\x05\xd7t\xfa^\xda\xfc\x8a\xf2\xd7[3]\x06\x9c\xa9\r\xc8\xdf80\x8b\x814}\xda\xde\xa1}?4\xcb\xa6Jl\xa3\x91x\x81\x16\xd0\xfa\xb5$%\xa2]],\x9b \xd3\xe8\xb2:&\xde\x9ex\xc19\xd1~\x9e\xa0/\x91\xedc>\xf7\xf4\x98\xdd\xf46:q\x03k\x82\xfe:\xfa_\'Ho\x9c\xd9\x05\xc23Q*\t\x0fnl\x0fI\x03\x1as\xef*\x8b\x89\x02r\xceh\x18O\xb2!\xcb@\x9c\xbe\x9dh\x1f\rA\xa1i\xb7\xe2\x1e\xb4\xfd\x0b\xa6\t\x03\xd3=}\r\xc6\xb9\xb7[\xa0\xf0\xe8\xb25\x8b2Wa\x8f\x9f\xa0\xef\xe3\xaf\xab\x98yk&\xb6q\xbc\xa9\r\xf6\xfd\xfb-8\'\xe8\xc7\xcd\xd7\x06\xa0\xd4Y6\xd5E\xb8\x87i\x03!}\x17\x86\x1b\xb7l\x82\xd2G\x97\xd51\xce7`\xd2\x80\x84\xe9\x7f\xb4\xab\xe3\xf2\xb8\xa7\xe7\xb5\xff\xb1\x8d\xbb\x17\xd4w\xed\xf5\x1d}\t\xe2\x8d3\xbb\xe0Sg\xa2Tv\x1e\x9c\xbd\x01D\xdf\t0\xf7\x89\x02\xbe`\xe6\xbf\xf0\x1eJ>\xa6\x8f\xf7n4\x04_6\xed\x96\xbb\xb1!2\x80\xe8\xdb\xd0\xdd\xb4[\xe0KG\x97\xff\xfe\xd1\xe0t=]k\xd0\x9a}\xde\xc6\xf1\xa660|\xc3\xaf\r\xc0\xb7\xcdS\xe3\xa9\x01~\xa6\xc0\xfc\x07' if name == "apps/webauthn/res/icon_google.toif": return b'TOIF@\x00@\x00#\x04\x00\x00\xc5\xd2?h\x1bg\x14\x00\xf0\x07N\xe5O\x1eZIC\x90e\x0c\x1f\xba \x84z\xc56\xd2\xb5\tr\xcd\xd9\\\x8arPP\x86R\x0f\r\xc8\x8aIC \x83\x03\x85\x88.>,\xa7U\x02\x85\x16JI\'\xc9\xb6\x06\x81\x97\x0e\x1d\x142HJ\x8e\xa2\xa1CJ;\xa8\xb4 +\xd5\x19%\xcdP\x88\xc6\x83\xdcY8\xb6"}\xba\xff\xd5{\xe3}\xf7\xfd\xde\xf7\xde\x030\x1a,\xae%\xa9\xcc\xfa\xfdbY\xacK\r\xd7\x9fRCz"V\xb3%.\xf74%\xcc\x83\x83Q`\xb9\x9cXw=\x1b\x99\xadl\xa9\x95\xc2\x1e{e\xd6Oe\xa4\'\x1ar_\x15\xeb\x05\x81\xb5\xc7^\xc6\xdc\xb7\xae\x96\x01\xfbu\x16\xcb;\tk6F\x94`\xce>\xce\xed\xd2Z\xd8\xac.\xb0\x9a\xd3\xd65\x8b\x89\r3\xba\xf2\xf2gve\xb1\xcc\xfa\r\xf5\xdd\x93-\xd9\xa7\xab)5\x84\xf3\xfa\xb7]\xac\xda\xab\xabS\xa8%u\xeb\xf5\xf1\xe9\xd83\xce\xb7\x03\x14\x7f\x1a\xa7\xce\xe5\xc6\xa9\xd7\x92zo\x15\xab\\\xae\xb6*\x9c_\xc6\xac\x7f\x19\xaf\xcd\xef$&6\xb2%W\xcb\x8a\x8e=RC[\x96\x1a\x94\xb0\x16&\xdc\x80j\xab\xc5\xb29\x1d`\xfd\xbev/\'2\x18i\xdd\xb3\x93\x10\xeb\xc6ua^K/\x96\x97\xb1\xce\xcb\x10%\x18\xd3\x01\xf64\xf6\x9e\xcb\x81\xa1`\xfdFN\xa7.\x04\xbbwF\xe8T\x06\x9c\x8d\xfd\xa6,\xc8\x17\x9f\x13\xf4\x9c\xb3x\xde_\xe96e5\xa9\x7fC\x03z\xb6\xe4\xf0\xdb!\x7f\xab\xa7\xab\xd9z\xd9?\x07\xa9al\x92fb\xf3\xf1\x89\xaf\xcc\xa1\xfb\xd6\xa99\xb4R\x8e\xeb\x9e\x8a\xdc\xec\xcb\x8a\xfc\xcf\xf3\xde\x1c\xc4:8\x1e\xcd\xcbMy0k/\xaf\xfd/\xaf\x07\xc0\xf7\x86\xf9My\xad+\xb60r\xdeg\x1f\x0e\xf7\x9b2\xeck\xff-\xa1\xdbQ\xb39\x17\x19\xae\xab)\x06\xcc\xe8\x1bA\xb2\xfeA\xb4\xff\xec$M\xd6\xd5\x0c\xcd`\x83zr\x84\xbe\xc4\xdd\xf0\xf6\x9f\x0e\xbaG\xfb<\x13\xa6\xabH\xaf\x9d\x86nd\x94\xfec|\xf0\x9fk\x94V\x05S\xca\x1cXM\x1b\xc3\x19\xdf7\xb1\xcf\xb8Q\xfe\xdd\xe9\xc1\xff\x04\xe8\xc4\xb4*\xe0\x99N\xac\x1d8 \xf6\xa1\x00\xd9@\xe9h\x924\x93Y$\xe9\x9fF\x87\xff\xfd\xc8\xab\xed\xf7\xf2:\x1d\xa2\xce\xf8V\xdc\x07\xa8\xa0\x98-\x94v\x9f\xf3\xb9f\x12t\xa4\xef\xd4\xcfC+\x98\xe5Db\xfd!Jo\x05\xfa\xf2\xbf\xc5+\x03\xfe\\p\xd4\xec\x10mo\x05\xef1_\xf6\xe9\xefGGoO\n\xae\xdb\\\xc1\xbb\xcc\x0f\xaf\xe7\xf0 \x9e\xd6\xdc\xdf\x02\xe4l\xae\x80g~;\xaa\xe0\xaf\xf8\x1e\x02\x1d!\xd8\xde\x03\x9ey\x9b\x99^\x14u\xe9\xbd)\x1c\xda\xbc\x899\xba\xaa[\xefE;\x10\xb1M?\xa4R`<\xd2\xee\x92\rs\x98b\xb6\x03`2X\xa5\x0bS\x96\xf4I\xfa\x00\x81\xa5\xa8\xa2\x8f(s\x93H\xd0\xbb^\xb0%\n \x06\xea1\xfdr\x84\xf9\x85\xda\xb2\xc9>\x0e\x0c[\xee\x10\xa5\xb5\x11S\xca\xaeq>\x01\x9c\x8b\x02<\xf2\x8a\x81\xaf\xa80\x9d\xa3\xebt\'\xd6\x89\xd5\xe9\x04}H\x85f8\xdf\x8a\x1b\x1b\xbc\xed\x15' + if name == "apps/webauthn/res/icon_invity.toif": + return b'TOIF@\x00@\x00|\x00\x00\x00\xed\xd2\xc9\r\x80 \x10@Q\x18\xf0H\xb7\xd6@\x05\xb69\x15x\xf1(.\t\xb2\xa8\x89\xfe?W\x99gPc\x88\x88\x88Z\nn\x1e\xce\'8||\xfc\xfa\xd2m*\xa5o\xf2-?\xbf\r\x1f\x1f\xbf\xdeW\xd9\x9e\xcfMo\x7f\x7f\x1e\xff_\xfe\xdb\xff_\xb4\xc1\x8d\xfe\xaa~\xdc\xde\xea\x1f+\xdb\x86\x8f\x8f\x7f\x97\xaf\x92{Z\xa5\xb7?\xf9u[\xb4\xcf\xfbe\xf5\xbf\x7f\xfc\x92\xf8\xfe\xf8\xe9\xa8\x18""\xa2M\x0b' if name == "apps/webauthn/res/icon_keeper.toif": return b'TOIF@\x00@\x00\xd7\x05\x00\x00\xdd\x92?h\x1bI\x14\xc6\xa78\xb8-Rl\x91B\xe5\x18r\xe0\xedN\xe5v+q)V\x90\xc2[n5\xde\xc4\x07R*\xcb\xa4\xb1\x9a!\n*,\x93\xe2\x14\xdc(\xc5\x9c\xad\xb8\x08\x9b\x14A\xee\xb6\x18\x88\xc0\x85-\xae8T\n\x06\x82\xce\x85\x11)\x0e\xa547\xb3\x7f\xa4\x95\xb4+\x8d\x1c\xf9\xcc\xddL5\xb3o\xf6\xf7\xde\xf7}\x00\xac\xbe>g\x8a\x85\x8f{\xbb\x87\x9f\xde\xfc\xf6\xe6\xe7WO\x9eo\xe6\x8fU\xf0/\xad\x1dM}\xf5\xe2\xc3\xd1\xd9\xd1\xd9\xc3w\xbb\x87_\xab_+[\xbc\x8f?\xdf\xbe\xde\xfb\x92\xb9k\xf6\xb6\xf2\xe4y\xc0\xde=\xbcv\x8a\x85\xe9\xbdY\xd8\xd1r\xca\xdd\xd1\x8fU\xf5U0\xf7\x83\xa7\xc5\xc2{\xeb\xc2\xbe\xb6/\xf8>\xb0&=\\\xe9w\xe5\xc4K\xf5\x8f\x8a\xa0\x7fzs\xc0\xc9\x0f\x9e\xc6\xb9\xa7\xd9s}3\x1f\xa9p\x17>@pmG\xf4k\xe7\xc2V\xf2?ll+\x90\xdf\xbfT\x1fm\xech\xa7\xd9\x1a\xef\xc1\xf4;0\x0b\x9f\xd7\xde\xc1N\xf6\xe1\xbb\xa3\xb3\xbf\xdf\x1eX\x0f\x9e\xbe\xb7\x1em\xcc\xabS\xcb\x9e\xf2\x1d\xa8\xb0\x99\xdf^\xab\x0b9\xe5\xf5\xde\xd1\xd9\x8b\x0f\x17\xbe\xdfi\xfa>\xda8\xd7O\xb3J>\xc8\x01\\#\xff\xb1V,\xbc\xf8\xf0q\xaf\xc8\xa7\x7f\xac\xa5\xd7}\x81\xa2\x83@\x83y\x8dn\xbf\xae\xf8_w\x0f\x8b\x85\x0b\xbbX\x80K:\x15.\x84\x1e(\xeb\xa1o+J\xfeJ\x17\xec\xc5\xd3\x07\xeb\\\xaf\x85\n,\xaf\x95[_2\xe7\xba\xffG\x9e\xfc\xdc\xd2\x99\x8e\xd5s\xfdJ\x17|%\x0f\xd7\xe4\xfei\xd6\xe4\xff;\xb0\x0e,\x99\xfaZ\xe8\x80Y8V\xd7\xc5/\xfa|\xb3 \xa7WP\xbf\xae\x0cN\xf8E)>\xe4\x19\x08\xf8\xe7\xfa}\xf0\x85\x03\x01\x7f3\x7f\x1f\xfa\x03pz\'\xfc\xf7\xff\x19~\xed\x9e\xf9;Z\xc4\x87\xff\x03\xfe\x8eV\xcb\x9a+\xf1\x1f\x87|\xb3\x90Sn\xcf5\x14\xc3\x01-\xda\xcc\xbb\xbf\xb8?\xb5\x06\x8d\xbf\x1a\xbfV\xb0\x0e4\xac\x1a\xca]\xf3\xb1\xca\xca\xb0\x87\x07\xe0\x06&n\xf0\x8d\x7f\xeb\x12\x0f\xba\xb8\x0e*\xb8\xc4L\xa4S\x08\x95u\xf0\x91jTQ\x1f\x0f\xc4\x867\xabm:\xe2]{\xdb\xee3w\xd0\xacU\x7f|\xfe\xbbz\x8b\xd9s\x01\xfb6\xfc\x84\x8e\x86\xa0k\xb4Q\x9d\x94H\xce\x90R\x83\xac\x95\x1f\xdfH\x97\xe1SS\x9e\xcfF\xa4\x83\x1bl\x9f\x96i\x19V\xd9\t\xe8\x82\x05\xd5x\xad|\xec\x01k^Q\x9e\x1e\x9bvR^\xe4d\xf8L\x86\xdf\x9b\xfc\x8bd\xa8i\xd8\xc8\x816\xd6\x91\x1a\xcd`\xf4\xe7_\x11)>\xb0\x96\xf1A+\x98\x1b\xa9l\x1f\xf6f\x1c\xb9$%\xf1\xd5P\xa0;\x97ES\x06\x0f\x97\xf0i3\xa8\xc3\x0e\x1d\xa6\xe8<\x00\x96\xafBs\xa679\xbe\xbd\x88\x8f\xda~\x8d\x02\xdc%Y\xaf\xf3*\x80\xbd)\xdd,\x19\xbe\xe1\xa4\xf3\xf1@8\x0c\x01jO)2$\x1e\xf6P\x7f\xbe\x03\x92a\xa3U\xf9h\x01\x1f\xfa\x7f 1]\xd1\x00\xda0JbN\xa4\x8etH3P\x87m\xf1\xcbJ\xec\xb5-\xc3\xc7\xa5\x88Nf\xf8\xf42\xc8v\xdc\x8d \xf1\x90O\xca=\x018c\xf4\x85\xcb0\xeb\x7f\xeds\x07T0\xae6\xa4\xf8$\x95\xef\xcf\x03&\x89\xe7\xee\xfa/XY$\x91\x8d@\x85\xbb\x97\xe5D\xae\xe1$q\x93\x0c G\x86O\xcb\xc9|~\x12,s\x92\x05\xec\xcfN\x1a\xb1|\x94B\r\xc3;\xee\x04\x80\xd5\xd5\xf8,\x8d\xdf\xf4?\xbb\xd3jr\xf7\xa7\xf2\x19\xfe\xa3\x13:\xd6\xe1\x8a\xd8\xb3\xdd-\xe1\xef\'\xf3\x83\xf4\x92aH\xef\xfbte6\xa3\x0c\x8a\xdbq\xea{\xf1\xbc\x10)>\xa8$\xf3\xc5\x9f)\x1cwS\x99\x9f\xde\xef+\xcb\xaf\xb5qU7\xee\x18-\xcb\xe0a5\xe2\xc7g\xe3)\x16\xf9\xce\x8d\xbd\xd4\xfd\xe2\xd6,\x1fh\\qg|v\xf9\x9b\xd2x\x82}\x19\xbe\x91\xc8\'C\xdf\x9b\xad1\xdf\xcf\x1e\xec\xcd\xd0\xbf\xf9]6\xe2\x8e\xd3\xe6\xb4fK\xf9\xf5$\xfd\x91\xef7\xb0"5\xc2\x9c\xcf\xb8\x8f=qK\xc3\xf4\xb1\x11V\xa7j\xaa2|4\xe1\x0fc\xf3\xfb\xc9\x9ed\t&\xf2EF!\x88\xd2\x87\xeaS/n\x0c)>n$\xf1\xb9\xb2 \x9e,\xe6\x1f\xb17\x95\xd0K\x10\xaf\xe9\x19\xdc\x0bv\x19\xe3\xd7e\xf8$\x91\xcf\xd3\x9b\xe1\xb3)\xd1l\xc2Y\xee\x95\x1d\xfb>\x0cz\x82\xfe\x9d\xd1\'\x99x\xf6"=\x96/\xdaL\xe6\x0bm\xb9;\xed\xf0\xd4\r\xcb[\xe1l}\x98\ro4v\x89\x1b"\x9fH\xe7\xaa\xc5\xd3\xd1\x90\xe1\xb3\x14>mN\xa6\xf3\xcf\xe5\xb0_\x93\x96\xd9\x16T\xf8\xf0\xad)\x1ds\x91V\xe3\x0cI\xf1A+\x85?\x14~B\xc0\'\x8d\xf4tb\xb4\x0c\x11Y\xb0\xc6\xa7F\xa8K\x9b6\xd1 >\xc1\xd2\xe5&\xf3\xa3\x89\xb1\x1eS\xd43\x1c\xac3\x137\xa2Yi\xc7pA7\xee8O\xc5\xcd*|\x98\xce\x1f\x8aL\xcd\xa6*}\x0b? \xa0\x9d\xe8\xccNd\xf8F*\x9f;\xd8\x81\x8a\xdf\xa35\xeb\xed\x1c;T\x8b6\xa7\xfbY\xbeP;\x9d\xcf\xfdt\x83\x0e(\x8c\x92\x9f\xc4\x06-\xae:\x9f\x9d\x9dL}qe\xf8\xd8[\xc4\x17\x0esv\x982Z\x16\xdd\x82\x90\xcaF\xa0\xc7N\x90\x83U\xf1\x95\xc1\x89\xf2Q\xef\xab\xf1\xe90y>6beC\x89%F\xc1*V\xe37$\xc3\x93\xf7mN\xbb\xb6\x0c\x9f,\xe5\x07Y\xc4\r\x92\x8b3\xfdN\x00\xd0\xb0\x83\xda \xf1\r\x92\xe2\xd3\x8e\x0c?r\x1a\xf6\xb0\x07\\\xee\xb3\x8b=\xd8[\x9cJ^)\xb1\xd8\xa5<\x7f\x95\x8d\x06\xb4|\x1f|24\xda\x9c\xac\x01\xc9EJh\r|<@\x9eQ\x87\x16\x83`\xf5\xa5\xa1\xf6\xea|2\xa4\x1d\xd0\x82U\xc3F:R\xc0w.\xec\x18\xfdE|<\x00]\xd4\xa6MXE\x0e\xcd\x01\xcd\xf8n\xe2\xec\xa2\x19\xd0B}\xd8#\x1d\xa3\xcdNp\x1dTp\tX\x84\xb3\xb0\n\xd7F\xf9\x07' if name == "apps/webauthn/res/icon_kraken.toif":