private string ValidateAsymmetricKeyCredentials(AsymmetricKeyCredentialsExt credentials)
        {
            if (string.IsNullOrEmpty(credentials.Username))
            {
                _messageBuilder.AppendLine("Username cannot be empty.");
            }
            else
            {
                if (ContainsIllegalCharacters(credentials.Username))
                {
                    _messageBuilder.AppendLine("Username contains illegal characters.");
                }
                if (credentials.Username.Length > UsernameMaxLength)
                {
                    _messageBuilder.AppendLine($"Username is too long, maximal length is {UsernameMaxLength}");
                }
            }

            if (string.IsNullOrEmpty(credentials.PrivateKey))
            {
                _messageBuilder.AppendLine("PrivateKey cannot be empty.");
            }

            if (string.IsNullOrEmpty(credentials.PublicKey))
            {
                _messageBuilder.AppendLine("PublicKey cannot be empty.");
            }

            return(_messageBuilder.ToString());
        }
        public static AsymmetricKeyCredentials ConvertExtToInt(this AuthenticationCredentialsExt credentials)
        {
            AsymmetricKeyCredentialsExt asymmetricKeyCredentials = credentials as AsymmetricKeyCredentialsExt;
            AsymmetricKeyCredentials    convert = new AsymmetricKeyCredentials
            {
                Username   = credentials.Username,
                PrivateKey = asymmetricKeyCredentials.PrivateKey,
                PublicKey  = asymmetricKeyCredentials.PublicKey
            };

            return(convert);
        }
        public override ValidationResult Validate()
        {
            string message = _validationObject switch
            {
                PasswordCredentialsExt ext => ValidateUserPasswordCredentials(ext),
                OpenIdCredentialsExt ext => ValidateOpenIdCredentials(ext),
                DigitalSignatureCredentialsExt ext => ValidateDigitalSignatureCredentials(ext),
                AsymmetricKeyCredentialsExt ext => ValidateAsymmetricKeyCredentials(ext),
                _ => string.Empty
            };

            return(new ValidationResult(string.IsNullOrEmpty(message), message));
        }
 public static AsymmetricKeyCredentialsExt ConvertIntToExt(this AuthenticationCredentials credentials)
 {
     if (credentials is AsymmetricKeyCredentials asymmetricKeyCredentials)
     {
         AsymmetricKeyCredentialsExt convert = new AsymmetricKeyCredentialsExt()
         {
             Username   = credentials.Username,
             PrivateKey = asymmetricKeyCredentials.PrivateKey,
             PublicKey  = asymmetricKeyCredentials.PublicKey
         };
         return(convert);
     }
     else
     {
         return(new AsymmetricKeyCredentialsExt());
     }
 }