mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
49 lines
860 B
Go
49 lines
860 B
Go
package srp
|
|
|
|
import (
|
|
"encoding/hex"
|
|
"hash"
|
|
"math/big"
|
|
"regexp"
|
|
)
|
|
|
|
// Helpers
|
|
|
|
func padTo(bytes []byte, length int) []byte {
|
|
paddingLength := length - len(bytes)
|
|
padding := make([]byte, paddingLength, paddingLength)
|
|
|
|
return append(padding, bytes...)
|
|
}
|
|
|
|
func padToN(number *big.Int, params *SRPParams) []byte {
|
|
return padTo(number.Bytes(), params.NLengthBits/8)
|
|
}
|
|
|
|
func hashToBytes(h hash.Hash) []byte {
|
|
return h.Sum(nil)
|
|
}
|
|
|
|
func hashToInt(h hash.Hash) *big.Int {
|
|
U := new(big.Int)
|
|
U.SetBytes(hashToBytes(h))
|
|
return U
|
|
}
|
|
|
|
func intFromBytes(bytes []byte) *big.Int {
|
|
i := new(big.Int)
|
|
i.SetBytes(bytes)
|
|
return i
|
|
}
|
|
|
|
func intToBytes(i *big.Int) []byte {
|
|
return i.Bytes()
|
|
}
|
|
|
|
func bytesFromHexString(s string) []byte {
|
|
re, _ := regexp.Compile("[^0-9a-fA-F]")
|
|
h := re.ReplaceAll([]byte(s), []byte(""))
|
|
b, _ := hex.DecodeString(string(h))
|
|
return b
|
|
}
|