gmessages/libgm/crypto/decode.go
2023-06-30 13:53:17 +03:00

34 lines
726 B
Go

package crypto
import (
"encoding/base64"
"google.golang.org/protobuf/proto"
"go.mau.fi/mautrix-gmessages/libgm/binary"
)
func DecodeAndEncodeB64(data string, msg proto.Message) error {
decodedBytes, err := base64.StdEncoding.DecodeString(data)
if err != nil {
return err
}
err = binary.DecodeProtoMessage(decodedBytes, msg)
if err != nil {
return err
}
return nil
}
func DecodeEncodedResponse(data string) (*binary.EncodedResponse, error) {
decodedBytes, err := base64.StdEncoding.DecodeString(data)
if err != nil {
return nil, err
}
decodedData := &binary.EncodedResponse{}
err = binary.DecodeProtoMessage(decodedBytes, decodedData)
if err != nil {
return nil, err
}
return decodedData, nil
}