diff options
Diffstat (limited to 'internal/storage/sql_provider.go')
| -rw-r--r-- | internal/storage/sql_provider.go | 48 | 
1 files changed, 7 insertions, 41 deletions
diff --git a/internal/storage/sql_provider.go b/internal/storage/sql_provider.go index fd6943e1a..a55a41cea 100644 --- a/internal/storage/sql_provider.go +++ b/internal/storage/sql_provider.go @@ -43,8 +43,6 @@ func NewSQLProvider(config *schema.Configuration, name, driverName, dataSourceNa  		sqlSelectTOTPConfig:  fmt.Sprintf(queryFmtSelectTOTPConfiguration, tableTOTPConfigurations),  		sqlSelectTOTPConfigs: fmt.Sprintf(queryFmtSelectTOTPConfigurations, tableTOTPConfigurations), -		sqlUpdateTOTPConfigSecret:                 fmt.Sprintf(queryFmtUpdateTOTPConfigurationSecret, tableTOTPConfigurations), -		sqlUpdateTOTPConfigSecretByUsername:       fmt.Sprintf(queryFmtUpdateTOTPConfigurationSecretByUsername, tableTOTPConfigurations),  		sqlUpdateTOTPConfigRecordSignIn:           fmt.Sprintf(queryFmtUpdateTOTPConfigRecordSignIn, tableTOTPConfigurations),  		sqlUpdateTOTPConfigRecordSignInByUsername: fmt.Sprintf(queryFmtUpdateTOTPConfigRecordSignInByUsername, tableTOTPConfigurations), @@ -52,8 +50,6 @@ func NewSQLProvider(config *schema.Configuration, name, driverName, dataSourceNa  		sqlSelectWebauthnDevices:           fmt.Sprintf(queryFmtSelectWebauthnDevices, tableWebauthnDevices),  		sqlSelectWebauthnDevicesByUsername: fmt.Sprintf(queryFmtSelectWebauthnDevicesByUsername, tableWebauthnDevices), -		sqlUpdateWebauthnDevicePublicKey:              fmt.Sprintf(queryFmtUpdateWebauthnDevicePublicKey, tableWebauthnDevices), -		sqlUpdateWebauthnDevicePublicKeyByUsername:    fmt.Sprintf(queryFmtUpdateUpdateWebauthnDevicePublicKeyByUsername, tableWebauthnDevices),  		sqlUpdateWebauthnDeviceRecordSignIn:           fmt.Sprintf(queryFmtUpdateWebauthnDeviceRecordSignIn, tableWebauthnDevices),  		sqlUpdateWebauthnDeviceRecordSignInByUsername: fmt.Sprintf(queryFmtUpdateWebauthnDeviceRecordSignInByUsername, tableWebauthnDevices), @@ -161,8 +157,6 @@ type SQLProvider struct {  	sqlSelectTOTPConfig  string  	sqlSelectTOTPConfigs string -	sqlUpdateTOTPConfigSecret                 string -	sqlUpdateTOTPConfigSecretByUsername       string  	sqlUpdateTOTPConfigRecordSignIn           string  	sqlUpdateTOTPConfigRecordSignInByUsername string @@ -171,8 +165,6 @@ type SQLProvider struct {  	sqlSelectWebauthnDevices           string  	sqlSelectWebauthnDevicesByUsername string -	sqlUpdateWebauthnDevicePublicKey              string -	sqlUpdateWebauthnDevicePublicKeyByUsername    string  	sqlUpdateWebauthnDeviceRecordSignIn           string  	sqlUpdateWebauthnDeviceRecordSignInByUsername string @@ -292,13 +284,17 @@ func (p *SQLProvider) StartupCheck() (err error) {  	ctx := context.Background() -	if err = p.SchemaEncryptionCheckKey(ctx, false); err != nil && !errors.Is(err, ErrSchemaEncryptionVersionUnsupported) { +	var result EncryptionValidationResult + +	if result, err = p.SchemaEncryptionCheckKey(ctx, false); err != nil && !errors.Is(err, ErrSchemaEncryptionVersionUnsupported) {  		return err  	} -	err = p.SchemaMigrate(ctx, true, SchemaLatest) +	if !result.Success() { +		return ErrSchemaEncryptionInvalidKey +	} -	switch err { +	switch err = p.SchemaMigrate(ctx, true, SchemaLatest); err {  	case ErrSchemaAlreadyUpToDate:  		p.log.Infof("Storage schema is already up to date")  		return nil @@ -837,21 +833,6 @@ func (p *SQLProvider) LoadTOTPConfigurations(ctx context.Context, limit, page in  	return configs, nil  } -func (p *SQLProvider) updateTOTPConfigurationSecret(ctx context.Context, config model.TOTPConfiguration) (err error) { -	switch config.ID { -	case 0: -		_, err = p.db.ExecContext(ctx, p.sqlUpdateTOTPConfigSecretByUsername, config.Secret, config.Username) -	default: -		_, err = p.db.ExecContext(ctx, p.sqlUpdateTOTPConfigSecret, config.Secret, config.ID) -	} - -	if err != nil { -		return fmt.Errorf("error updating TOTP configuration secret for user '%s': %w", config.Username, err) -	} - -	return nil -} -  // SaveWebauthnDevice saves a registered Webauthn device.  func (p *SQLProvider) SaveWebauthnDevice(ctx context.Context, device model.WebauthnDevice) (err error) {  	if device.PublicKey, err = p.encrypt(device.PublicKey); err != nil { @@ -947,21 +928,6 @@ func (p *SQLProvider) LoadWebauthnDevicesByUsername(ctx context.Context, usernam  	return devices, nil  } -func (p *SQLProvider) updateWebauthnDevicePublicKey(ctx context.Context, device model.WebauthnDevice) (err error) { -	switch device.ID { -	case 0: -		_, err = p.db.ExecContext(ctx, p.sqlUpdateWebauthnDevicePublicKeyByUsername, device.PublicKey, device.Username, device.KID) -	default: -		_, err = p.db.ExecContext(ctx, p.sqlUpdateWebauthnDevicePublicKey, device.PublicKey, device.ID) -	} - -	if err != nil { -		return fmt.Errorf("error updating Webauthn public key for user '%s' kid '%x': %w", device.Username, device.KID, err) -	} - -	return nil -} -  // SavePreferredDuoDevice saves a Duo device.  func (p *SQLProvider) SavePreferredDuoDevice(ctx context.Context, device model.DuoDevice) (err error) {  	if _, err = p.db.ExecContext(ctx, p.sqlUpsertDuoDevice, device.Username, device.Device, device.Method); err != nil {  | 
