67 lines
1.4 KiB
Go
67 lines
1.4 KiB
Go
package tlep
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
func main() {
|
|
tlep1, err := InitTLEP("user2")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = tlep1.CBESInitRandom()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
keyA, err := tlep1.ECDHGetPublicKey()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
tlep2, err := InitTLEP("user1")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
keyB, err := tlep2.ECDHGetPublicKey()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
// Acception
|
|
err = tlep1.ECDHApplyOtherKeyBytes(keyB)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = tlep2.ECDHApplyOtherKeyBytes(keyA)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
// First EA encryption
|
|
fmt.Printf("TLEP1 CBES specs: %#v\n", tlep1.CBES)
|
|
cbesSpecs, err := tlep1.CBESGetBytes()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
encryptedCBESSpecs, err := tlep1.EncryptMessageEA(cbesSpecs)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
realSpecs, err := tlep2.DecryptMessageEA(encryptedCBESSpecs)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
tlep2.CBESSetFromBytes(realSpecs)
|
|
fmt.Printf("TLEP2 CBES specs: %#v\n", tlep2.CBES)
|
|
// Second layer CAFEA encryption
|
|
someMsg := "lol real msg i don't wanna joke xdd"
|
|
fmt.Printf("Sending %s to TLEP2\n", someMsg)
|
|
encryptedMsg, err := tlep1.EncryptMessageCAFEA([]byte(someMsg))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Printf("Encrypted Message = %v\n", encryptedMsg)
|
|
decryptedMsg, err := tlep2.DecryptMessageCAFEA(encryptedMsg)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Printf("Getting %s on TLEP2 from TLEP1\n", decryptedMsg)
|
|
}
|