@@ -570,6 +570,21 @@ def provide_network_information(self,
570
570
assert response .status == StatusWord .OK
571
571
572
572
def provide_enum_value (self , payload : bytes ) -> RAPDU :
573
+ if self ._pki_client is None :
574
+ print (f"Ledger-PKI Not supported on '{ self ._firmware .name } '" )
575
+ else :
576
+ # pylint: disable=line-too-long
577
+ if self ._firmware == Firmware .NANOSP :
578
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B434010135010315463044022076DD2EAB72E69D440D6ED8290C8C37E39F54294C23FF0F8520F836E7BE07455C02201D9A8A75223C1ADA1D9D00966A12EBB919D0BBF2E66F144C83FADCAA23672566" # noqa: E501
579
+ elif self ._firmware == Firmware .NANOX :
580
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B434010135010215463044022077FF9625006CB8A4AD41A4B04FF2112E92A732BD263CCE9B97D8E7D2536D04300220445B8EE3616FB907AA5E68359275E94D0A099C3E32A4FC8B3669C34083671F2F" # noqa: E501
581
+ elif self ._firmware == Firmware .STAX :
582
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B434010135010415473045022100A88646AD72CA012D5FDAF8F6AE0B7EBEF079212768D57323CB5B57CADD9EB20D022005872F8EA06092C9783F01AF02C5510588FB60CBF4BA51FB382B39C1E060BB6B" # noqa: E501
583
+ elif self ._firmware == Firmware .FLEX :
584
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B43401013501051546304402205305BDDDAD0284A2EAC2A9BE4CEF6604AE9415C5F46883448F5F6325026234A3022001ED743BCF33CCEB070FDD73C3D3FCC2CEE5AB30A5C3EB7D2A8D21C6F58D493F" # noqa: E501
585
+ # pylint: enable=line-too-long
586
+ self ._pki_client .send_certificate (PKIPubKeyUsage .PUBKEY_USAGE_CALLDATA , bytes .fromhex (cert_apdu ))
587
+
573
588
chunks = self ._cmd_builder .provide_enum_value (payload )
574
589
for chunk in chunks [:- 1 ]:
575
590
self ._exchange (chunk )
@@ -636,3 +651,23 @@ def provide_tx_simulation(self, simu_params: TxSimu) -> RAPDU:
636
651
for chunk in chunks [:- 1 ]:
637
652
self ._exchange (chunk )
638
653
return self ._exchange (chunks [- 1 ])
654
+
655
+ def provide_proxy_info (self , payload : bytes ) -> RAPDU :
656
+ if self ._pki_client is None :
657
+ print (f"Ledger-PKI Not supported on '{ self ._firmware .name } '" )
658
+ else :
659
+ # pylint: disable=line-too-long
660
+ if self ._firmware == Firmware .NANOSP :
661
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B434010135010315463044022076DD2EAB72E69D440D6ED8290C8C37E39F54294C23FF0F8520F836E7BE07455C02201D9A8A75223C1ADA1D9D00966A12EBB919D0BBF2E66F144C83FADCAA23672566" # noqa: E501
662
+ elif self ._firmware == Firmware .NANOX :
663
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B434010135010215463044022077FF9625006CB8A4AD41A4B04FF2112E92A732BD263CCE9B97D8E7D2536D04300220445B8EE3616FB907AA5E68359275E94D0A099C3E32A4FC8B3669C34083671F2F" # noqa: E501
664
+ elif self ._firmware == Firmware .STAX :
665
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B434010135010415473045022100A88646AD72CA012D5FDAF8F6AE0B7EBEF079212768D57323CB5B57CADD9EB20D022005872F8EA06092C9783F01AF02C5510588FB60CBF4BA51FB382B39C1E060BB6B" # noqa: E501
666
+ elif self ._firmware == Firmware .FLEX :
667
+ cert_apdu = "01010102010211040000000212010013020002140101160400000000200863616C6C646174613002000831010B32012133210381C0821E2A14AC2546FB0B9852F37CA2789D7D76483D79217FB36F51DCE1E7B43401013501051546304402205305BDDDAD0284A2EAC2A9BE4CEF6604AE9415C5F46883448F5F6325026234A3022001ED743BCF33CCEB070FDD73C3D3FCC2CEE5AB30A5C3EB7D2A8D21C6F58D493F" # noqa: E501
668
+ # pylint: enable=line-too-long
669
+ self ._pki_client .send_certificate (PKIPubKeyUsage .PUBKEY_USAGE_CALLDATA , bytes .fromhex (cert_apdu ))
670
+ chunks = self ._cmd_builder .provide_proxy_info (payload )
671
+ for chunk in chunks [:- 1 ]:
672
+ self ._exchange (chunk )
673
+ return self ._exchange (chunks [- 1 ])
0 commit comments