MCPcopy Create free account
hub / github.com/LanceLRQ/deer-executor / ReadProblemGPGInfo

Function ReadProblemGPGInfo

common/persistence/problems/reader_deer.go:199–225  ·  view source on GitHub ↗

ReadProblemGPGInfo 读取题目携带的GPG信息

(problemFile string)

Source from the content-addressed store, hash-verified

197
198// ReadProblemGPGInfo 读取题目携带的GPG信息
199func ReadProblemGPGInfo(problemFile string) (string, error) {
200 pack, err := readProblemPackage(problemFile, false)
201 if err != nil {
202 return "", err
203 }
204
205 err = doProblemPackageValidation(pack, false)
206 if err != nil {
207 return "", err
208 }
209
210 if pack.CertSize == 0 {
211 return "no GPG public key", nil
212 }
213 elist, err := openpgp.ReadArmoredKeyRing(bytes.NewReader(pack.Certificate))
214 if err != nil {
215 return "", err
216 }
217 if len(elist) < 1 {
218 return "", errors.Errorf("GPG key error")
219 }
220 rel := ""
221 for _, identify := range elist[0].Identities {
222 rel += identify.Name + "\n"
223 }
224 return rel, nil
225}

Callers 1

ReadProblemInfoFunction · 0.92

Calls 3

readProblemPackageFunction · 0.85
ErrorfMethod · 0.80

Tested by

no test coverage detected