conejoninja / tesoro

Go package for TREZOR devices
Other
11 stars 5 forks source link

Trezor T is not supported #7

Closed xaionaro closed 6 years ago

xaionaro commented 6 years ago
~/go/src/github.com/conejoninja/tesoro/example$ go run main.go 
No TREZOR devices found, make sure your device is connected
conejoninja commented 6 years ago

You are right, it's not compatible. The new communication protocol is a bit different from model One, it will take a considerable amount of time to make it work. I will leave this open, but don't have much time lately to add this.

rfjakob commented 6 years ago

Hmm, this is strange, check this out: https://github.com/trezor/trezor-core/issues/91#issuecomment-355759065

T2 supports v1 protocol.

I'll create a ticket over there asking about the status.

conejoninja commented 6 years ago

This commits ( https://github.com/conejoninja/tesoro/commit/1ec64ae38f9bd52e03b956765c9e905bbd8768f9 ) adds the vendor information so it's recognized by the example. One odd thing is that in my computer only shows the interface 1, and I think it should be the 0

rfjakob commented 6 years ago

Thanks, I also tried that ( https://github.com/rfjakob/tesoro/commit/0e43b88184b3f5648e4cb9d3d5a14e45ebe01926 ). It seems to hang at some point:

~/go/src/github.com/conejoninja/tesoro/example$ ./example 
Found 1 TREZOR devices connected
>init
^C

I have asked at https://github.com/trezor/trezor-core/issues/254 about the status of protocol version 1 support in the Model T.

rfjakob commented 6 years ago

Got the answer https://github.com/trezor/trezor-core/issues/254#issuecomment-401215063 :

Trezor T talks only over WebUSB, and its HID interface is reserved for U2F. Other than that, it speaks unmodified v1 protocol.

The HID interface is only for U2F!

conejoninja commented 6 years ago

I hacked something together and modelT is kind of working (hardcoded vendor info, so One is not working ) check the modelT branch : https://github.com/conejoninja/tesoro/tree/modelT

I need to clean the code, there's also cerrojo ( https://github.com/conejoninja/cerrojo ) which is the same as tesoro but updated a little bit and compatible with keepkey wallets. Both of them needs some updates (which I do not have time to) since I didn't update the protobuf messages for a while.

I left this open since there's lot of work to do:

WARNING: Some functions may not work in the current state, for example "getfeatures" since the protobuffer message has been updated to include more information, it will fail.

rfjakob commented 6 years ago

Wow, awesome!

About cerrojo vs tesoro: Do you want do merge the two and only keep cerrojo? I could maybe find time to work on the open issues, and merge both libraries.

conejoninja commented 6 years ago

That was the original idea, but I think trezor and keepkey have diverted a little too much to be worth it. I'll try to clean/update tesoro, if it's not done in a couple of days, remember me or feel free to send some PRs.

rfjakob commented 6 years ago

Ok, sounds good!

conejoninja commented 6 years ago

Changes in: https://github.com/conejoninja/tesoro/pull/8 https://github.com/conejoninja/tesoro/commit/a882d578178809887f61607fc5625c4769511cfc

I consider most of the work done and cleaned it a little bit. New messages are still a work in progress (help welcome).