// Deocde decodes data using the secconf codec. func DecodeVia(data []byte, secertKeyring io.Reader, p keyctl.PassphraseKeyring) ([]byte, error) { decoder := base64.NewDecoder(base64.StdEncoding, bytes.NewBuffer(data)) entityList, err := openpgp.ReadKeyRing(secertKeyring) if err != nil { return nil, err } md, err := p.ReadMessage(decoder, entityList, nil, nil) if err != nil { return nil, err } gzReader, err := gzip.NewReader(md.UnverifiedBody) if err != nil { return nil, err } defer gzReader.Close() bytes, err := ioutil.ReadAll(gzReader) if err != nil { return nil, err } return bytes, nil }