From 7d37109eb84ef029e7b7ef3eac55db3237af03f6 Mon Sep 17 00:00:00 2001 From: mcudev <29890609+mcudev@users.noreply.github.com> Date: Tue, 14 Jun 2022 07:54:07 -0400 Subject: [PATCH] common/defs/fido: add cloudflare --- common/defs/fido/cloudflare.json | 4 ++++ common/defs/fido/cloudflare.png | Bin 0 -> 2340 bytes core/src/apps/webauthn/knownapps.py | 8 ++++++++ core/src/apps/webauthn/res/icon_cloudflare.toif | Bin 0 -> 610 bytes core/src/trezor/res/resources.py | 2 ++ 5 files changed, 14 insertions(+) create mode 100644 common/defs/fido/cloudflare.json create mode 100644 common/defs/fido/cloudflare.png create mode 100644 core/src/apps/webauthn/res/icon_cloudflare.toif diff --git a/common/defs/fido/cloudflare.json b/common/defs/fido/cloudflare.json new file mode 100644 index 0000000000..542bb47712 --- /dev/null +++ b/common/defs/fido/cloudflare.json @@ -0,0 +1,4 @@ +{ + "name": "Cloudflare", + "webauthn": ["dash.cloudflare.com"] +} diff --git a/common/defs/fido/cloudflare.png b/common/defs/fido/cloudflare.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd360010578b2809fda4ba2f67a6b6c68b1a247 GIT binary patch literal 2340 zcma);>pv5U1IA~rbIBt4on$B@mqDyNMp8L*lVuTnwiw< z+&zfd`yS^cB0Aj~-N{NS<4({d{Gqz~R9 zr*(VBbU1@?Q>Di_DN}0kllchNzW=TvP$xFu1 zy{AD!uv_?eR_}DD#JcR7b+Cpl{`tg>DZJc^JM%8&pcZTc9dMPkQ!IcJ9CU`o#>%@N z3qeN~LzKBpH^3!(Vw1=GOAhIb91emP9*O5QjAA z!tSXr=cAxbMN6qN=DrogPPQf@woE7mL3^=iNM_r2i9Vn#4VdE~zY8rT^^+M$;QQ;T zpK$nYU`K)TtjF3%=fm4506vt_bUkykY)~#QJaQLW0w9ie9c2LNL0c_}%n9;cKVyz$ zWoK+9>@)p<{YVS=y=mbjEe^Cw9}8Nei!)W2${cSy9BVQGY9#a?_2~n7Rc7@qmMBNB z&#P*)uw4hNxwk-KE+>~ZZI@LSz6XO3OJ$dHUlz3o9Tg4jRksg3@xRjytnT?LQ2pf5 z(VGepR&j`XxC3-LgwUnT;mWRAfmxv=fQB#GXZr(|1-f*4l&%r#Smw@lhR>Z5ICkS@DE=S9&$R4eEOpEVivL&}^hZn7?taSL zT}4Flzz?wJ5!2Mo*I7s)p{ORvIey5UT{8O9N3wl2R;wW0kuC(mK2f+ZAE>Cz7_B-> zGc-SAXkF;@E0OC+dsfcTG_kF)F zZpU%wNd=NuqE~5s+4``p*{QsENT9B0;tvBO?ZYXDB{c-TH7y{Sq2wy$2i>z~yXQTo zsBM?V&uU$DGj%nbn78oZ-#gnl8sc+c*@4L|#Q@)4&x+fiOX!gL45&q|IK|v(1%C-hC&xSSrP_ zEsGe+-CsnhaT2QEsN9(mdO#_sCM5`!)BH@0;D)8gG z(oz!4Q)U?7Y7BaOfqTL=+G(|mPjbDn?FOWs_`u?)*1s)wOgR<0e8nuv&kr>|?;9c7 z@S<;6O4T--_#+WU+5P%Xg+`L0nf1FSW+t9yitOenKFIPH!M^<_hWO$o9Xd2aps)esS2;+Y)d?K(HCn8+Fzp?A+7oSc{9hJyXBUK7jj%Drg(}ev#zhqD<^J>+z!PIZrkU^Ed<+1uUAPQEMCod&G(o6 zCrl->Hrr6FNW{`d?E;B-X=aGjQMpVy<;{WsU= z;cr`l9~#p?8{#!&YT|#Ap~84Jn$OfV81DGcTwFe?%;Q^GdWEe*tbVjV{Ll*Hrd4-% z)}4CWJKFqGy)?T!?9mG~t9prkrqaxfu;Q3Oz>X?%+kbejtT9ZutYZ!n#r_(A-am4i zjyGjn?1J@|mc~-IJ7L?kxjMBtBZkz;R=lrFyk;?Bxj&HS3memq^sH%bWNCU4A1<3E n#$Kchr2a>2IK+$j8NL9)yF<=% FIDOApp | None: use_sign_count=None, use_self_attestation=None, ) + if rp_id_hash == b"\x19\x81\x5c\xb9\xa5\xfb\x25\xd8\x05\xde\xbd\x7b\x32\x53\x7e\xd5\x78\x63\x9b\x3e\xd1\x08\xec\x7c\x5b\xb9\xe8\xf0\xdf\xb1\x68\x73": + # WebAuthn key for Cloudflare + return FIDOApp( + label="dash.cloudflare.com", + icon="apps/webauthn/res/icon_cloudflare.toif", + use_sign_count=None, + use_self_attestation=None, + ) if rp_id_hash == b"\xe2\x7d\x61\xb4\xe9\x9d\xe0\xed\x98\x16\x3c\xb3\x8b\x7a\xf9\x33\xc6\x66\x5e\x55\x09\xe8\x49\x08\x37\x05\x58\x13\x77\x8e\x23\x6a": # WebAuthn key for Coinbase return FIDOApp( diff --git a/core/src/apps/webauthn/res/icon_cloudflare.toif b/core/src/apps/webauthn/res/icon_cloudflare.toif new file mode 100644 index 0000000000000000000000000000000000000000..efc4080a434d4d61c22ebdea4f37a3d8ab90beff GIT binary patch literal 610 zcmV-o0-gO-Pf2D#06+j%0ssK*l0Rq@Q5=AeCSbrqf-Z5pq$(K%GjxeM^dc1EP$;+r zJ2VFBWl`!F9g-6|+~`;;(;a#e7@4FuDdK*(a-PqSGVQ_aP%)tTe=4!+#2O{^~DD^~OsyS4)*R5hz3acij-wWM!5y4Kozr+J;szn!&c w{t^Uw)sa}(v}S&FyfwYQcV9a2?}h{m+`JJBZGp6~3vsPBMgRZ+ literal 0 HcmV?d00001 diff --git a/core/src/trezor/res/resources.py b/core/src/trezor/res/resources.py index 5ec5bcc764..3574d1456e 100644 --- a/core/src/trezor/res/resources.py +++ b/core/src/trezor/res/resources.py @@ -62,6 +62,8 @@ def load_resource(name: str) -> bytes: return b'TOIf@\x00@\x00y\x04\x00\x00\xbd\xd2\xbfo\xe2H\x14\x07\xf0Q\x14\xe5F\xd6\x14.Cg\xa3(\xc2tI\xe9\xca\x9al6\xacS\xbat\x13\xe4 \x96\x8bK\x97n\x10\x8c\x90\x15QR\x1a\t!&B\xf9+X\xedm.\x97\xfd+P\xc4\x01\xcb\x1fq6^\xc2\x8f\x18\xf0\x8f\xc9\xbd\xa7mVx>y\xef}\x01\xf8_J\x00\n\xbc\xe1;\xfc7~\xe8\xfd\xeb\xc0"T\xbc\xff\xfb\xb8R\xf8\xa1T\x93?\xa9#\xbd|\xfb\x87Y\xb0\x1c\xfby\xb3\xadJ\xfd\x1f\xbe\xc3v\xca\xcc\xc1\xf9\xe1\xf5\xd1-\x0c\xf36z\xd2\xfc\x93pR\x97\r\xcc\x0f\xe5\x13\xbdlU\xf6\xaao\xddT\xb5+w\x86I\xda\x89E\x8c\xff2s\xd1\xdd\xa0I^o\xdc\x8d)\xd2N\x93\xd3\xc7C\xdc3\x0bq\xe5\xb9\xceY\x8ex\xe1\xce(2\x9e\x92\xa5\xeb\xec\xd5xJ"\x07\x97\'\x1c\xdf1\x0b\x14Qd\xc2\xb84\xacbb}Ml\xfb\xb9S3\x07R\xb7\x8d\xe6~.V\xca:\xea\xc8\xea\xa7\xb0\xe7\xa9\xf72/\xd4\xa7t\xee[N\xf4\xb9S\xdb\xf3\xd4\xfb\x89\xc7$\xd0)\xaaO\xa2\xdd[.YNZ\xdb\xcb\x9d\xea\xe7\x1dV[\xf7o\xfet?.u\x93\xa5\xfc\x9d\x9e\xd7\x1b\xfe{zc\xa1S\xd4\xcc\xef\xbb\xb8Vfa\xfb\xba\xf1\x04\x04\x00D\xec\xce\x96>\xe1v\xe9\xe7\x87,\xb6>\xd79\xab\xe0\xeb\xcb\xe4\xed\xbb?T\xb4\xcfl\xec\xb9^\x81\x8a\xff\xaa:Z\xd5)\xb2\x9d-{\x1f\xdcBv\xba\xed\xc0\xa2\xffj\xe6`u\xf7~\x9b\xb90]\xc4V\x85\xa1\xde\x87\xd5\xf9\xb3\x82\xdd_\xd7=\x1f\x86\xea\xce\x07\xe8@\xfd\xb1\xa9S\xe4e\xf2Cu\xcbY\xe8\xde\xee_\xde\xfbzc\xf3\xeeL\xf5Jp\xf7\xf0\xdd\xfb\xad\x8e\xd62\x7fc\xe6\xd8\xe9f!\xc8\xbc_\xdai\x98N\x11.\xad\xfa\xdagfz\xde\xf8\x1b\x08\x8bw\xa5\xdaf\xee\x17-u\x97\xfa\xd9+;]//u\xbe\xd3\xbc\x0b\xd7\xdb\xe8x\xf8\xb6\xfb*\xab\xcb\x13U\xed\xad,U\xb0*\xe1:E\xee\xaf\xe5\x85\xae\x8f\x98\xe8\x13\x92??\\\xbf\xe96\x9d\xa2f~\xf1\xab\xe3!\x1b\xbd>\x15/Vu\xf9\xa4\x8d\xb6\xfbf\x8ee\xf2\x08gU\xf8\xce\xaa.b\xf7\x85\xee\xf0\xb5\xd3\xdf\t\x190\xc9\\\x03(\xab\xba\x97\xbb\xeb]:Eg\xaf\xc1/q/\xfd\xd5\xe5K\xb0VP\xb1\x9fw\xebm\xc4\x0f\x82\x84\x9a\x85t\xba\xdd\xcfd\xd7u\xef\xcd\xdcn\xddK\xdfu\xf0\xd3L6\xed\xde\xa1\xb2\xa1\x03\xbd\xb1O\xa7\xe8n\x9cz\xfb^\xde\xcf\x0f\xc1\xbb\xd2N\xf7\xeb\x14\xe1R\xf0kc\x9c4\xef\xc6x=\xef\xbf\xf5\xa3(\xfa\xe2\xfaP\xb1\xfa\x89n>\x95C&\x07@\x1d\xb5Q\x14\xbf>M|\xfd\t\xe1\xbc\x9bWC\xf5\x1f\xd1t\x8a\xb4\xd3\xe0\x8b\xf3\xc3\xb8[\xb7\n\xa2\x01@\x9a\xd9\xfd\xed\x8b\xd9\x04\xe9\x9b\xd8}\xf9\x04\x08\xe1z\xb4\xd4\x05M\xb8\xe5W\x91\xedgL\xa0\x12n\x03AoD\xd7)RG\x8b\x0f\xf5F\xb4\xb9qo\xab\xede\xd8,\xc4\xd1\xdd\x19\xdfY|k\xfc\xbb\xc7\x9eZ\x15\xf9r\xbb\r\x00?\xa8O\xe3\xe8\x14\x99p\xf9\xb5\twL=\xd1\x1f\xa4\xda\xb6{\x07%\x1a\xad\xfbx:E\xe2\xc5\x1e\xdf\x93M\xe8M]\x05{\n\x13w\x16W\xb7\x9d\xd5\x176\xf6\xef]Z\x7f\x90/\xf9\x01\xd8[\xb0x7\x8ekS\xd4FR\xf7\x9d\xefe\xdb,\xe8e\xb9$b\xa0\x80H%\xd5\x9aj|\x9d"\xeb\xcb\xfa;\x99\xacT\xcb\x1c\xc0"\x88QP\xd1\xaf\xe2\xef\xddow\x96\xc9\x82\x94%\xd5\x08\x97\xc4\xf6[/\xa7\xb3\xf9\x8e1n\xa3\xa4z3\x0fo\x92\xdbPQG\xadG\x9aXwgR-1\xae`\xd2\xbcNn\xfb\xad\x1d%\x9c\xbb\x88{\xc9\xb2\xbe\x91{!\xbe\x9d9\xd0\xafZ\xf7im\x8a\x08\x07\x8bq\xa7\x96/m\xa7\x8d(\x83n\xaa\xfc F\xc6\x07\xb8d}q\x7fRDY\xe9\xdf\xa2\xa4[\xcc\xe2\x92\xf1@\xf2\xee\x8c\x95\xecw}\x1ae\xf6\xb3\xef\xee\x0bKu\x99:x\x13m\xeb\xb8\xc4vn\x8a\xdcG\xdc\x8b\x938\xa9\xcb"\xe9A\xb7\x91\x99\x8b\x93\xb9E\xf2l\x87\x85N\xb8\xb3\xef Y\t\xb8\xd7zL\x97v\\\x02\x02HQ|\xc7xJ\x96\x05\xc2y\xb6\x02\x18\xd4\xf1Po\xb81\xf6\xe0\xbe\x98P\xea\xa6\x9b{\xb3`\x11\x97\xac\x8a\xfbs\xb7\xdcz4s\xf2\'X\x04\x1fT\xb0(u\xb5#3G\xb8\xd6}\xf0\xb7\xb8\xb3\xd6cS\xb5\x1d\xe3\x01\x131\xcbf\xdf\xd1\xb2\t\x15X\xf4Za\xb9\xe7\xff\x00' if name == "apps/webauthn/res/icon_bitwarden.toif": return b'TOIf@\x00@\x00a\x02\x00\x00\xed\xd21h\xdb@\x14\x00P-\x85\x94L\x1e2X\xc1`\xb4jT\x08\x18\x1f\x86\x82p\x17-\x06\x11#\xeaz\xf3f-\x86r\xb4\xc4\xdd2zl\x0c\xa1X\x9bi\x17-YL\x86f3t\xf2R\x90\x08\x04-)\x19\xb54\xd8P\x8cZ\xa9U-Y\'\x9fN\xb2\xe5\xa1\xf7\xff\xe6\xbb\xfbO\xfe\xff3\x0c\x8d@\xbc\xe0\xba|\xef\xe4\x08\xc0\xadgSx\xe2\x1b\xec!S\x8e\xc7Y\t\x9c\xee@\x0e\xa5\xf0\xa3\xf0\t\xad\xf3\x8d]\xdb~r\xfa>u\xef\x0b\x06\x91\xce\xc3|\xb3\xf02\xb8u\xbb\x9f{t\x0fV\x9b\xc8u\xf3\xd6\xbd\x0e\xd4}_\xe8\xa1\xce\xe5\xc5\xf8\xd5\xb8\x95=GUi\x82\xdc\x81\xae\xef\x9f\x1cEOEhk\xce\x96\xc2\xa8!\'p\xed\xfb\xa8\xd3\xd6\xc2\xd9b ;p\xb6g\x1fR?\xbb\xaf*qi\xb5\xf3\xf0Qo\xff\xe4\xacD}\xeaS\x9f\xfa\xd4\xa7>\xf5\xa9\xff\x7f\xf9F-\x8b/\x9bY}\xeb\xfd\xea\x968$\xf5\x01\x9c[Y|q\xb2\xback\xe8;\x9b}\xab\x9d\xc5\x1fUWw\xf4\xf34\xbe\xfe1\x8b\xff\x18\xe8~\xff*\x8d\x9fl\x03\xf1\xff\xde\xb1\xd0\xdb\x87\xf3\x01\x9c\x95\xd2\xf9\x9dJpwF\xd5\xb8\xfa8_U\xd2\xf8\xb2ik\xc1\x1b\xb2\x99\xd6\x07p\xba$\xf5\xa5Ip\xf2\x8esy\x1c_\x1d\xefK\xa6}K\xe2\xcb\x8b\xb0n\xd4\xc4a\x16\x1f?\x83\xf0\xdd\xf0\xd7\xce-y\xb1\xa9v\x12\x1f\xc0\x8b\xbbd\xfe\xe5qp\xeb\xdcP+\x9b+\'\xf3\xdd\xca8_6g\xa5\xf5\x937oqu\x93\xfa\x00\x0e\xee6\xf9\x1f~\xce#[\xa2*\xf8\xaa\xc9}\x00\xfbW\xeb\xdd\xfd\xfb/\xdf\x19\xed\xf5\xdf\xec\xdbN1IM\x12\x1f\xc0N\xc5\xd6\x9c\x04a\xd4d3YE2\x1f@\xc9\x9c.q\xba~.\x0e\x93\xd6#\xf5\xdd\xbc\xb8A\xcf\xc1\xeb\xbb\x86\xdf9\xa4\xdf$y%\x9b_\xeeQ\xfa\xb8%MH\xea\x803\xdf\x17\x9e\x88\xde\xfdNU\xb1B[7]\xbe.\x92\xd6\x10z\xbe\xcf7H\xdf\x02(\x0e\xfb7\x8f#\xd7\x9e\x95\xc8\xba\xee\'\xcb\xfb>{\x98\xe6\xbd\xfb\r\xaa\xd2\xa9\xa4{\x0b\xe0\xf3g\xbe\xcf\x94\xc9\'\x905\xf9\x7f\xddw\xa3\xf09o\xff\xe0;\x13\nN\xcfS/~e"\xc1\r\xf6\xa9{S\xa8\x0b\xdfv?\xf7\x83\x07&>\xca\x85:\xa7\n\xd7\xa0\xb9u\xf9\x94\xef\xb1|`\xe7ix\xf1\x0b' + if name == "apps/webauthn/res/icon_cloudflare.toif": + return b'TOIf@\x00@\x00V\x02\x00\x00\xed\x92?h\x13Q\x1c\x80\x8f&`\xc0B\x82.q\xbb\xa4*\x19\x043t\x89:\xf4"\x14\xe2P(\xb8\x04;4\x06\xeaeQ\xea\x18\x1d\x92\x13:\xdc\xe8X*\xe4\x0f\x19L\x97b\x14\x85HHc\x8b\x83\x11\x94\x14A*\xa5m:\x19\xaa\xcb]\x8a\xc2{?\xf3\xee\xaa=cr\xf9\xc3\xbb\x80\xf0\xbeo98\xb8\xef\xfd\xde\xfd8\x8e\xc1`0\x18\x0c\x06\xe3\x7f\x82O\x08\x9ep2\x92\x0e\'\x05\x8f;1\xca\xb2\x7f\xf7\xf1\xed\xed\xacb3Z{$\x07}\xe5\x11\xb4\xcb\x85\xb1\xbf\xcbF\xf3\x15>ee=n\xd2\xd6m\xd4c\xeb\xd6\xb4\x1d|\xbe\xd2\xab\xae\xbb,Y\xd1\xcf\xef\xf7W\xb7\xe6\x04r\xb0\xff:qq\x8ff]\xf0\x0cV\'\xfa\xcb\xf4\xfa\xb5\xe8\xe0\xfd\xe2\xc4\xf0=\xd7|8)y%o$\xcd\'8.\x1c\x19\xbcN\x14<\xc3\xed\xb9\x1cl\xd4\r\xbb\x94ys}\xb8~\xa62L\xbdhS(\xd9\xa8;\xf8A\xfb\xcb\x92b\xa3\xe7\xfd\xaf\x0ea\x90\xba/E\xb3\xae\xdc\x018\xfc~x\xea\xcb\xdb\xd7\x17\xe5\x83@\x1f\'\x91\xbc4\xfb\xeaG(!\xf1\xc4\xea\xc2l\xc6\xbc\x9f\xafP\xec\xdba\x0e\xdc\xc6>q5\xe7\x9a\xef\xde\x7f\xb6Oq\xfa\xd3\x00x\xb6\xbd\x8f\xc4\xad%w\xbas\xdd\xc1g\xe8\xcdo\xc7?\x01\xd0\xfb\x7f\xfb\xe4\x04\xedw\xc0\xa7\xe4\xe0\xbb(\xcd\x7f\xdf<\x0b-\xd0\xb7N}$fs\xc6\xa9\xe5 \xd5\xad\xb7)\xe7\xf1$h\xe0\x17\x9d\xfbH\x0cIz\xdd5U\x9c\xa0\xda\xb6\xab\x97\xe0*\xfc\xa1\xd3\x06\x107\xa6\xf5\x8b/\x9a\x7f\xed\xa9:\xa3\xde=v\r} \xe23\xc4\xe6o\'5o\xe2\x97\x9a?\xe0\t\xb4\xb3\x02\x01\xfc\t?\xc7\x05\xbc\xd8t\x9e\x9c\xc0\xb7\xc7q\xf11\xf3i\xd0=\xfc\x8a\xd8\xd4\xfd\xac\x0bW4o\xc1C\xcd\xb9#]\xf2\xdc\x99\x95\xd6\x9b\x07\x10\x80s\xc6\xff\x11\xcf\xba\xa6\x1au\x9a7\xdf\xf2\x82\xba\x06;\x86r\x00;\xbbm\xc0j.\xb6Ny\xef4\xd5\x99\xe3\xf6\x0e\xbe\xdc\xadM\xac.\xe4+V\xf4\x15\xbb\xb6\x03%T5\xab#qk\xa9\x16\xb5\xa4o;\xba\xd6\xda{\xa7y\x9d\xcc\xbf\x9d\xb5h\xfe\x12\x04z\xd5\x91X\xd8\xb4f~u\xbc5\xbd\xbfw_:\xf0\xef\x86\x04\x0b\xdc\xbc\x11\x0bm\x842\xbdt%8\x06\x83\xc1`0\x18\x8c\x11\xf3\x0b' if name == "apps/webauthn/res/icon_coinbase.toif": return b'TOIf@\x00@\x00#\x02\x00\x00\xedR!\x92\xe40\x0c\xac2\x0c4\xbc\x05\x02y\xc2\xc1\x03\x06\x03M\xc3\x87\x18.\xf4\xc1)\xbf"\xd8\xbf\x18j\x16\x98/\x08\x06\xfa\t\xba\xdd\xda\x9d\xab\xbb:+\xa3\xd8\x99\x9d\xba\xaa\xa8\xa9\xa4n\xb5ZEu\xe0\xc0\x81\x03\xff\x114\x0e\xe0\xa2\xa7\x0b\\\xc0\x93\x8b\x03h\xfa\x1af\x8bcDC\x85B3F\xfb@\x15]\xf2Xf\xfe\xb3\x16\xe3\xb1K\xfb\xb3\xbb\x90\x03\t+\x07\xb7+wo&1\xf7\xad\xa6\xb7\xa9}\xd8O\x98#UT\xde%\r.\x10Rm\xe1khfo\xac\x16\x05\'l\xb8\xfd\xb7\x07\xb5_\xe8M\xdd\xdf\xff\xcdA]\x12\xa7@;\xd5\xf4\xa0\xcf\xe7\x80\x80\x90\x05\x9dn#{\x97\x96\xd5\xadsr\xb1\x87[\xf7\x0b\xb88\xa7u\xa5]\xda\xc2\xefWr\xb7\x98r\xa2,\xa1\xe1\xa7