Skip to content

Instantly share code, notes, and snippets.

@guange2015
Last active August 18, 2016 09:14
Show Gist options
  • Select an option

  • Save guange2015/6a5ce54f8fa3890e4ab32e8f71b00b5c to your computer and use it in GitHub Desktop.

Select an option

Save guange2015/6a5ce54f8fa3890e4ab32e8f71b00b5c to your computer and use it in GitHub Desktop.

Revisions

  1. guange2015 revised this gist Aug 18, 2016. 1 changed file with 27 additions and 28 deletions.
    55 changes: 27 additions & 28 deletions test.go
    Original file line number Diff line number Diff line change
    @@ -1,41 +1,40 @@
    package main

    import (
    "bytes"
    "encoding/hex"
    "flag"
    "fmt"
    "github.com/ethereum/go-ethereum/crypto"
    "golang.org/x/crypto/scrypt"
    "log"
    "bytes"
    "encoding/hex"
    "flag"
    "github.com/ethereum/go-ethereum/crypto"
    "golang.org/x/crypto/scrypt"
    "log"
    )

    func main() {

    const (
    SALT_HEX = "d42e9ef41c1f4b0b020cbe89ac4a37b9922861379da6775fdd7da598aba1ba42"
    CIPHER_HEX = "be849afadeb2db97f208c40a1b47d9de7754d884c05bce06251fd1cb47333d85"
    MAC_HEX = "86d84ee41178e49d29ca552575a83b7d8e2a6fd7d5351a6425cc1d5fc901ac09"
    )
    const (
    SALT_HEX = "d42e9ef41c1f4b0b020cbe89ac4a37b9922861379da6775fdd7da598aba1ba42"
    CIPHER_HEX = "be849afadeb2db97f208c40a1b47d9de7754d884c05bce06251fd1cb47333d85"
    MAC_HEX = "86d84ee41178e49d29ca552575a83b7d8e2a6fd7d5351a6425cc1d5fc901ac09"
    )

    var password = flag.String("password", "123456", "help message for flagname")
    flag.Parse()
    var password = flag.String("password", "123456", "help message for flagname")
    flag.Parse()

    salt, _ := hex.DecodeString(SALT_HEX)
    dk, err := scrypt.Key([]byte(*password), salt, 262144, 8, 1, 32)
    if err != nil {
    log.Fatal(err)
    }
    salt, _ := hex.DecodeString(SALT_HEX)
    dk, err := scrypt.Key([]byte(*password), salt, 262144, 8, 1, 32)
    if err != nil {
    log.Fatal(err)
    }

    cipherText, _ := hex.DecodeString(CIPHER_HEX) //ciphertext
    calculatedMAC := crypto.Keccak256(dk[16:32], cipherText)
    cipherText, _ := hex.DecodeString(CIPHER_HEX) //ciphertext
    calculatedMAC := crypto.Keccak256(dk[16:32], cipherText)

    mac, _ := hex.DecodeString(MAC_HEX) //mac
    mac, _ := hex.DecodeString(MAC_HEX) //mac

    if bytes.Equal(calculatedMAC, mac) {
    fmt.Println("equal")
    } else {
    fmt.Println("error")
    }
    if bytes.Equal(calculatedMAC, mac) {
    log.Println("equal")
    } else {
    log.Println("error")
    }

    }
    }
  2. guange2015 created this gist Aug 18, 2016.
    41 changes: 41 additions & 0 deletions test.go
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    package main

    import (
    "bytes"
    "encoding/hex"
    "flag"
    "fmt"
    "github.com/ethereum/go-ethereum/crypto"
    "golang.org/x/crypto/scrypt"
    "log"
    )

    func main() {

    const (
    SALT_HEX = "d42e9ef41c1f4b0b020cbe89ac4a37b9922861379da6775fdd7da598aba1ba42"
    CIPHER_HEX = "be849afadeb2db97f208c40a1b47d9de7754d884c05bce06251fd1cb47333d85"
    MAC_HEX = "86d84ee41178e49d29ca552575a83b7d8e2a6fd7d5351a6425cc1d5fc901ac09"
    )

    var password = flag.String("password", "123456", "help message for flagname")
    flag.Parse()

    salt, _ := hex.DecodeString(SALT_HEX)
    dk, err := scrypt.Key([]byte(*password), salt, 262144, 8, 1, 32)
    if err != nil {
    log.Fatal(err)
    }

    cipherText, _ := hex.DecodeString(CIPHER_HEX) //ciphertext
    calculatedMAC := crypto.Keccak256(dk[16:32], cipherText)

    mac, _ := hex.DecodeString(MAC_HEX) //mac

    if bytes.Equal(calculatedMAC, mac) {
    fmt.Println("equal")
    } else {
    fmt.Println("error")
    }

    }