v0.1 - initial commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
package winpwn
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestEnhexUnhexRoundTrip(t *testing.T) {
|
||||
data := []byte("Hello, world!")
|
||||
h := Enhex(data)
|
||||
if h != "48656c6c6f2c20776f726c6421" {
|
||||
t.Errorf("Enhex = %q", h)
|
||||
}
|
||||
back, err := Unhex(h)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !bytes.Equal(back, data) {
|
||||
t.Errorf("Unhex(Enhex(x)) = %q, want %q", back, data)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnhexInvalid(t *testing.T) {
|
||||
if _, err := Unhex("zz"); err == nil {
|
||||
t.Error("expected error for invalid hex string")
|
||||
}
|
||||
}
|
||||
|
||||
func TestXorRoundTrip(t *testing.T) {
|
||||
data := []byte("attack at dawn")
|
||||
key := []byte{0x42}
|
||||
if got := Xor(Xor(data, key), key); !bytes.Equal(got, data) {
|
||||
t.Errorf("Xor(Xor(x,k),k) = %q, want %q", got, data)
|
||||
}
|
||||
}
|
||||
|
||||
func TestXorCyclesKey(t *testing.T) {
|
||||
data := []byte{1, 2, 3, 4}
|
||||
key := []byte{0xff, 0xff}
|
||||
got := Xor(data, key)
|
||||
want := []byte{0xfe, 0xfd, 0xfc, 0xfb}
|
||||
if !bytes.Equal(got, want) {
|
||||
t.Errorf("Xor = %v, want %v", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHexdumpFormat(t *testing.T) {
|
||||
out := Hexdump([]byte("Hello, world!"))
|
||||
if !bytes.Contains([]byte(out), []byte("48 65 6c 6c 6f")) {
|
||||
t.Errorf("Hexdump missing expected hex bytes: %q", out)
|
||||
}
|
||||
if !bytes.Contains([]byte(out), []byte("Hello, world!")) {
|
||||
t.Errorf("Hexdump missing ASCII gutter: %q", out)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user