Skip to content

Commit

Permalink
Change FromProtoOrName to FromProtoWithDefault, improve call sites
Browse files Browse the repository at this point in the history
  • Loading branch information
jprenken committed Feb 25, 2025
1 parent dffcc99 commit 6e38276
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 19 deletions.
19 changes: 6 additions & 13 deletions identifier/identifier.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
package identifier

import (
"errors"
"net/netip"

corepb "github.com/letsencrypt/boulder/core/proto"
Expand Down Expand Up @@ -47,19 +46,13 @@ func FromProto(ident *corepb.Identifier) ACMEIdentifier {
}
}

// FromProtoOrName can be removed after DnsNames are no longer used in RPCs.
// TODO(#8023)
func FromProtoOrName(ident *corepb.Identifier, name string) (ACMEIdentifier, error) {
if ident != nil && name != "" {
return ACMEIdentifier{}, errors.New("both Identifier and DNSName are set")
// FromProtoWithDefault can be removed after DnsNames are no longer used in
// RPCs. TODO(#8023)
func FromProtoWithDefault(ident *corepb.Identifier, name string) ACMEIdentifier {
if ident == nil {
return NewDNS(name)
}
if ident != nil {
return FromProto(ident), nil
}
if name != "" {
return NewDNS(name), nil
}
return ACMEIdentifier{}, errors.New("neither Identifier nor DNSName are set")
return FromProto(ident)
}

// NewDNS is a convenience function for creating an ACMEIdentifier with Type
Expand Down
8 changes: 5 additions & 3 deletions va/va.go
Original file line number Diff line number Diff line change
Expand Up @@ -678,10 +678,12 @@ func (va *ValidationAuthorityImpl) performLocalValidation(
// also contains Problems. This method does NOT implement Multi-Perspective
// Issuance Corroboration as defined in BRs Sections 3.2.2.9 and 5.4.1.
func (va *ValidationAuthorityImpl) PerformValidation(ctx context.Context, req *vapb.PerformValidationRequest) (*vapb.ValidationResult, error) {
ident, err := identifier.FromProtoOrName(req.Identifier, req.DnsName)
if err != nil {
return nil, err
// TODO(#8023): Once DnsNames are no longer used in RPCs, use req.Identifier
// directly instead of setting ident.
if req.Identifier != nil && req.DnsName != "" {
return nil, errors.New("both Identifier and DNSName are set")
}
ident := identifier.FromProtoWithDefault(req.Identifier, req.DnsName)

if core.IsAnyNilOrZero(req, ident, req.Challenge, req.Authz, req.ExpectedKeyAuthorization) {
return nil, berrors.InternalServerError("Incomplete validation request")
Expand Down
8 changes: 5 additions & 3 deletions va/vampic.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,10 +219,12 @@ type validationLogEvent struct {
// implements the DCV portion of Multi-Perspective Issuance Corroboration as
// defined in BRs Sections 3.2.2.9 and 5.4.1.
func (va *ValidationAuthorityImpl) DoDCV(ctx context.Context, req *vapb.PerformValidationRequest) (*vapb.ValidationResult, error) {
ident, err := identifier.FromProtoOrName(req.Identifier, req.DnsName)
if err != nil {
return nil, err
// TODO(#8023): Once DnsNames are no longer used in RPCs, use req.Identifier
// directly instead of setting ident.
if req.Identifier != nil && req.DnsName != "" {
return nil, errors.New("both Identifier and DNSName are set")
}
ident := identifier.FromProtoWithDefault(req.Identifier, req.DnsName)

if core.IsAnyNilOrZero(req, ident, req.Challenge, req.Authz, req.ExpectedKeyAuthorization) {
return nil, berrors.InternalServerError("Incomplete validation request")
Expand Down

0 comments on commit 6e38276

Please sign in to comment.