// newReg creates a reg model object from a core.Registration func registrationToModel(r *core.Registration) (*regModel, error) { key, err := json.Marshal(r.Key) if err != nil { return nil, err } sha, err := core.KeyDigest(r.Key) if err != nil { return nil, err } if r.InitialIP == nil { return nil, fmt.Errorf("initialIP was nil") } if r.Contact == nil { r.Contact = &[]*core.AcmeURL{} } rm := ®Model{ ID: r.ID, Key: key, KeySHA256: sha, Contact: *r.Contact, Agreement: r.Agreement, InitialIP: []byte(r.InitialIP.To16()), CreatedAt: r.CreatedAt, } return rm, nil }
// GetRegistrationByKey obtains a Registration by JWK func (ssa *SQLStorageAuthority) GetRegistrationByKey(ctx context.Context, key *jose.JsonWebKey) (core.Registration, error) { const query = "WHERE jwk_sha256 = ?" var model interface{} var err error if key == nil { return core.Registration{}, fmt.Errorf("key argument to GetRegistrationByKey must not be nil") } sha, err := core.KeyDigest(key.Key) if err != nil { return core.Registration{}, err } if features.Enabled(features.AllowAccountDeactivation) { model, err = selectRegistrationv2(ssa.dbMap, query, sha) } else { model, err = selectRegistration(ssa.dbMap, query, sha) } if err == sql.ErrNoRows { msg := fmt.Sprintf("No registrations with public key sha256 %s", sha) return core.Registration{}, core.NoSuchRegistrationError(msg) } if err != nil { return core.Registration{}, err } return modelToRegistration(model) }
// newReg creates a reg model object from a core.Registration func registrationToModel(r *core.Registration) (interface{}, error) { key, err := json.Marshal(r.Key) if err != nil { return nil, err } sha, err := core.KeyDigest(r.Key) if err != nil { return nil, err } if r.InitialIP == nil { return nil, fmt.Errorf("initialIP was nil") } if r.Contact == nil { r.Contact = &[]string{} } rm := regModelv1{ ID: r.ID, Key: key, KeySHA256: sha, Contact: *r.Contact, Agreement: r.Agreement, InitialIP: []byte(r.InitialIP.To16()), CreatedAt: r.CreatedAt, } if features.Enabled(features.AllowAccountDeactivation) { return ®Modelv2{ regModelv1: rm, Status: string(r.Status), }, nil } return &rm, nil }
// GetRegistrationByKey obtains a Registration by JWK func (ssa *SQLStorageAuthority) GetRegistrationByKey(key jose.JsonWebKey) (core.Registration, error) { reg := ®Model{} sha, err := core.KeyDigest(key.Key) if err != nil { return core.Registration{}, err } err = ssa.dbMap.SelectOne(reg, "SELECT * FROM registrations WHERE jwk_sha256 = :key", map[string]interface{}{"key": sha}) if err == sql.ErrNoRows { msg := fmt.Sprintf("No registrations with public key sha256 %s", sha) return core.Registration{}, core.NoSuchRegistrationError(msg) } if err != nil { return core.Registration{}, err } return modelToRegistration(reg) }
// newReg creates a reg model object from a core.Registration func registrationToModel(r *core.Registration) (*regModel, error) { key, err := json.Marshal(r.Key) if err != nil { return nil, err } sha, err := core.KeyDigest(r.Key) if err != nil { return nil, err } rm := ®Model{ ID: r.ID, Key: key, KeySHA256: sha, Contact: r.Contact, Agreement: r.Agreement, } return rm, nil }