2022-11-09 17:39:17 +03:00

37 lines
984 B
Go

package rln
import "encoding/hex"
func toMembershipKeyPairs(groupKeys [][]string) ([]MembershipKeyPair, error) {
// groupKeys is sequence of membership key tuples in the form of (identity key, identity commitment) all in the hexadecimal format
// the toMembershipKeyPairs proc populates a sequence of MembershipKeyPairs using the supplied groupKeys
groupKeyPairs := []MembershipKeyPair{}
for _, pair := range groupKeys {
idKey, err := hex.DecodeString(pair[0])
if err != nil {
return nil, err
}
idCommitment, err := hex.DecodeString(pair[1])
if err != nil {
return nil, err
}
groupKeyPairs = append(groupKeyPairs, MembershipKeyPair{IDKey: IDKey(Bytes32(idKey)), IDCommitment: IDCommitment(Bytes32(idCommitment))})
}
return groupKeyPairs, nil
}
func Bytes32(b []byte) [32]byte {
var result [32]byte
copy(result[32-len(b):], b)
return result
}
func Bytes128(b []byte) [128]byte {
var result [128]byte
copy(result[128-len(b):], b)
return result
}