// Saves a key as a file named "privkey" inside the given collection. func (s *fdbStore) saveKey(c *fdb.Collection, privateKey crypto.PrivateKey) error { f, err := c.Create("privkey") if err != nil { return err } defer f.CloseAbort() err = acmeutils.SavePrivateKey(f, privateKey) if err != nil { return err } return f.Close() }
// Saves a key as a file named "privkey" inside the given collection. func (s *Store) saveKey(c *fdb.Collection, privateKey interface{}) error { var kb []byte var hdr string switch v := privateKey.(type) { case *rsa.PrivateKey: kb = x509.MarshalPKCS1PrivateKey(v) hdr = "RSA PRIVATE KEY" case *ecdsa.PrivateKey: var err error kb, err = x509.MarshalECPrivateKey(v) if err != nil { return err } hdr = "EC PRIVATE KEY" default: return fmt.Errorf("unsupported private key type: %T", privateKey) } f, err := c.Create("privkey") if err != nil { return err } defer f.CloseAbort() err = pem.Encode(f, &pem.Block{ Type: hdr, Bytes: kb, }) if err != nil { return err } f.Close() return nil }