capitalone / fpe

A format-preserving encryption implementation in Go
Apache License 2.0
201 stars 40 forks source link

Panic on strings with trailing zeros #10

Closed anitgandhi closed 6 years ago

anitgandhi commented 6 years ago

Description of Issue

This is a tracking bug based on #9

Steps to Reproduce

package main

import (
    "fmt"
    "github.com/capitalone/fpe/ff1"
)

// Note: panic(err) is just used for example purposes.
func main() {
    key := []byte{0x4, 0x8, 0x15, 0x16, 0x23, 0x42, 0x4, 0x8, 0x15, 0x16, 0x23, 0x42, 0x4, 0x8, 0x15, 0x16, 0x23, 0x42, 0x4, 0x8, 0x15, 0x16, 0x23, 0x42}
    tweak := []byte{0x42}

    // Create a new FF1 cipher "object"
    // 10 is the radix/base, and 8 is the tweak length.
    ciph, err := ff1.NewCipher(10, 8, key, tweak)
    if err != nil {
        panic(err)
    }

    original := "750000000"

    // Call the encryption function on an example test vector
    ciphertext, err := ciph.Encrypt(original)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(ciphertext)
}

What did you expect to see?

Not a panic