in server/signedcontainer/payload.go [77:94]
func (p *payload) publicKey() ([]byte, error) {
publicKey, ok := p.Optional[publicKey].(string)
if !ok {
return nil, fmt.Errorf("public key not found in the Optional field of payload: %v", p)
}
// Decode the unpadded base64 encoding public key.
publicKeyBytes, err := unpaddedEncoding.DecodeString(publicKey)
if err != nil {
return nil, fmt.Errorf("failed to decode public key string as base64 [%v]: %v", publicKey, err)
}
// Check if the retrieved public key is PEM formatted.
if block, _ := pem.Decode(publicKeyBytes); block == nil {
return nil, errors.New("could not decode public key bytes as PEM")
}
return publicKeyBytes, nil
}