func()

in internal/metadata/unmarshal.go [262:286]


func (k *windowsKeys) UnmarshalJSON(b []byte) error {
	var s string

	if err := json.Unmarshal(b, &s); err != nil {
		return err
	}
	for _, jskey := range strings.Split(s, "\n") {
		var wk windowsKey
		if err := json.Unmarshal([]byte(jskey), &wk); err != nil {
			galog.Errorf("failed to unmarshal windows key from metadata: %s", err)
			continue
		}

		expired, err := ssh.CheckExpired(wk.ExpireOn)
		if err != nil {
			galog.Errorf("failed to check expiry for time %q: %s", wk.ExpireOn, err)
			continue
		}
		if wk.Exponent != "" && wk.Modulus != "" && wk.UserName != "" && !expired {
			*k = append(*k, wk)
		}
	}

	return nil
}