fix: nip04 remove extra padding

This commit is contained in:
Wes van der Vleuten 2022-12-23 02:16:57 +01:00 committed by fiatjaf
parent 6aab32ef4f
commit 3f2c3f1bd8

View File

@ -8,7 +8,6 @@ import (
"encoding/base64"
"encoding/hex"
"fmt"
mrand "math/rand"
"strings"
"github.com/btcsuite/btcd/btcec/v2"
@ -56,18 +55,12 @@ func Encrypt(message string, key []byte) (string, error) {
// add padding
base := len(plaintext)
extra := 0
var padding int
if base < 100 {
// add some random padding to this message since it is too small
extra = mrand.Intn(230) // the total padding will be padding + extra, which can't be more than 256
}
// this will be a number between 1 and 16 (including), never 0
padding = block.BlockSize() - (base+extra)%block.BlockSize()
padding := block.BlockSize() - base%block.BlockSize()
// encode the padding in all the padding bytes themselves
padtext := bytes.Repeat([]byte{byte(padding + extra)}, padding+extra)
padtext := bytes.Repeat([]byte{byte(padding)}, padding)
paddedMsgBytes := append(plaintext, padtext...)