diff --git a/cli/cli b/cli/cli deleted file mode 100755 index 9f2153f..0000000 Binary files a/cli/cli and /dev/null differ diff --git a/cli/main.go b/cli/main.go index 852f583..dc397bf 100644 --- a/cli/main.go +++ b/cli/main.go @@ -1,10 +1,10 @@ package main import ( - "os" - "fmt" - "encoding/hex" + "encoding/hex" + "fmt" "github.com/boltcard/boltcard/crypto" + "os" ) // inspired by parse_request() in lnurlw_request.go @@ -40,50 +40,50 @@ func check_cmac(uid []byte, ctr []byte, k2_cmac_key []byte, cmac []byte) (bool, func main() { - fmt.Println("-- bolt card crypto test vectors --") - fmt.Println() + fmt.Println("-- bolt card crypto test vectors --") + fmt.Println() - args := os.Args[1:] + args := os.Args[1:] - if(len(args) != 4) { - fmt.Println("error: should have arguments for: p c aes_decrypt_key aes_cmac_key") - os.Exit(1) - } + if len(args) != 4 { + fmt.Println("error: should have arguments for: p c aes_decrypt_key aes_cmac_key") + os.Exit(1) + } -// get from args - p_hex := args[0] - c_hex := args[1] - aes_decrypt_key_hex := args[2] - aes_cmac_key_hex := args[3] + // get from args + p_hex := args[0] + c_hex := args[1] + aes_decrypt_key_hex := args[2] + aes_cmac_key_hex := args[3] - fmt.Println("p = ", p_hex) - fmt.Println("c = ", c_hex) - fmt.Println("aes_decrypt_key = ", aes_decrypt_key_hex) - fmt.Println("aes_cmac_key = ", aes_cmac_key_hex) - fmt.Println() + fmt.Println("p = ", p_hex) + fmt.Println("c = ", c_hex) + fmt.Println("aes_decrypt_key = ", aes_decrypt_key_hex) + fmt.Println("aes_cmac_key = ", aes_cmac_key_hex) + fmt.Println() - p, err := hex.DecodeString(p_hex) + p, err := hex.DecodeString(p_hex) if err != nil { - fmt.Println("ERROR: p not valid hex", err) - os.Exit(1) + fmt.Println("ERROR: p not valid hex", err) + os.Exit(1) } c, err := hex.DecodeString(c_hex) if err != nil { - fmt.Println("ERROR: c not valid hex", err) - os.Exit(1) + fmt.Println("ERROR: c not valid hex", err) + os.Exit(1) } if len(p) != 16 { - fmt.Println("ERROR: p length not valid") - os.Exit(1) + fmt.Println("ERROR: p length not valid") + os.Exit(1) } if len(c) != 8 { - fmt.Println("ERROR: c length not valid") - os.Exit(1) + fmt.Println("ERROR: c length not valid") + os.Exit(1) } // decrypt p with aes_decrypt_key @@ -91,20 +91,20 @@ func main() { aes_decrypt_key, err := hex.DecodeString(aes_decrypt_key_hex) if err != nil { - fmt.Println("ERROR: DecodeString() returned an error", err) - os.Exit(1) + fmt.Println("ERROR: DecodeString() returned an error", err) + os.Exit(1) } dec_p, err := crypto.Aes_decrypt(aes_decrypt_key, p) if err != nil { - fmt.Println("ERROR: Aes_decrypt() returned an error", err) - os.Exit(1) + fmt.Println("ERROR: Aes_decrypt() returned an error", err) + os.Exit(1) } if dec_p[0] != 0xC7 { - fmt.Println("ERROR: decrypted data does not start with 0xC7 so is invalid") - os.Exit(1) + fmt.Println("ERROR: decrypted data does not start with 0xC7 so is invalid") + os.Exit(1) } uid := dec_p[1:8] @@ -115,29 +115,29 @@ func main() { uid_str := hex.EncodeToString(uid) ctr_str := hex.EncodeToString(ctr) - fmt.Println("decrypted card data : uid", uid_str, ", ctr", ctr_str) + fmt.Println("decrypted card data : uid", uid_str, ", ctr", ctr_str) // check cmac aes_cmac_key, err := hex.DecodeString(aes_cmac_key_hex) if err != nil { - fmt.Println("ERROR: aes_cmac_key is not valid hex", err) - os.Exit(1) + fmt.Println("ERROR: aes_cmac_key is not valid hex", err) + os.Exit(1) } cmac_valid, err := check_cmac(uid, ctr, aes_cmac_key, c) if err != nil { - fmt.Println("ERROR: check_cmac() returned an error", err) - os.Exit(1) + fmt.Println("ERROR: check_cmac() returned an error", err) + os.Exit(1) } if cmac_valid == false { - fmt.Println("ERROR: cmac incorrect") - os.Exit(1) + fmt.Println("ERROR: cmac incorrect") + os.Exit(1) } - fmt.Println("cmac validates ok") - os.Exit(0) + fmt.Println("cmac validates ok") + os.Exit(0) }