util.go 720 B

1234567891011121314151617181920212223
  1. package security
  2. import (
  3. "context"
  4. "github.com/v2fly/v2ray-core/v5/common"
  5. "github.com/v2fly/v2ray-core/v5/transport/internet"
  6. )
  7. func CreateSecurityEngineFromSettings(context context.Context, settings *internet.MemoryStreamConfig) (Engine, error) {
  8. if settings == nil || settings.SecurityType == "" {
  9. return nil, nil
  10. }
  11. securityEngine, err := common.CreateObject(context, settings.SecuritySettings)
  12. if err != nil {
  13. return nil, newError("unable to create security engine from security settings").Base(err)
  14. }
  15. securityEngineTyped, ok := securityEngine.(Engine)
  16. if !ok {
  17. return nil, newError("type assertion error when create security engine from security settings")
  18. }
  19. return securityEngineTyped, nil
  20. }