/// <summary>
 /// Initializes a new instance of the <see cref="SshGenerationRequest"/> class.
 /// Use to request a new SSH Credential
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="parameters">Optional parameters (defaults to key length 2048 and no SSH Comment)</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public SshGenerationRequest(string credentialName, SshGenerationParameters parameters = null, OverwiteMode overwriteMode = OverwiteMode.converge)
 {
     Name       = credentialName;
     Type       = CredentialType.SSH;
     Parameters = parameters ?? _defaultParams;
     Mode       = overwriteMode;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PasswordGenerationRequest"/> class.
 /// Use to Request a new Password
 /// </summary>
 /// <param name="credentialName">Name of the credential</param>
 /// <param name="parameters">Variables for password generation</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public PasswordGenerationRequest(string credentialName, PasswordGenerationParameters parameters, OverwiteMode overwriteMode = OverwiteMode.converge)
 {
     Name       = credentialName;
     Type       = CredentialType.Password;
     Parameters = parameters;
     Mode       = overwriteMode;
 }
Example #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="JsonSetRequest"/> class.
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="value">Value of the credential to set</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public JsonSetRequest(string credentialName, string value, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name  = credentialName;
     Type  = CredentialType.JSON;
     Value = new JsonCredential(value);
     AdditionalPermissions = additionalPermissions;
     Mode = overwriteMode;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="SshGenerationRequest"/> class.
 /// Use to request a new SSH Credential
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="parameters">Optional parameters (defaults to key length 2048 and no SSH Comment)</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public SshGenerationRequest(string credentialName, SshGenerationParameters parameters = null, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name                  = credentialName;
     Type                  = CredentialType.SSH;
     Parameters            = parameters ?? defaultParams;
     Mode                  = overwriteMode;
     AdditionalPermissions = additionalPermissions;
 }
Example #5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserGenerationRequest"/> class.
 /// Use to request a new <see cref="UserCredential"/>
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="parameters">Variables for username and password generation</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public UserGenerationRequest(string credentialName, UserGenerationParameters parameters, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name                  = credentialName;
     Type                  = CredentialType.User;
     Parameters            = parameters;
     AdditionalPermissions = additionalPermissions;
     Mode                  = overwriteMode;
 }
Example #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PasswordSetRequest"/> class.
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="password">Value of the credential to set</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public PasswordSetRequest(string credentialName, string password, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name  = credentialName;
     Type  = CredentialType.Password;
     Value = new PasswordCredential(password);
     AdditionalPermissions = additionalPermissions;
     Mode = overwriteMode;
 }
Example #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RsaGenerationRequest"/> class.
 /// Use to request a new RSA Credential
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="keyLength">Optional Key Length (default: 2048)</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public RsaGenerationRequest(string credentialName, CertificateKeyLength keyLength = CertificateKeyLength.Length_2048, OverwiteMode overwriteMode = OverwiteMode.converge)
 {
     Name       = credentialName;
     Type       = CredentialType.RSA;
     Parameters = new KeyParameters {
         KeyLength = keyLength
     };
     Mode = overwriteMode;
 }
Example #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RsaSetRequest"/> class.
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="privateKey">Private key for the credential</param>
 /// <param name="publicKey">Public key for the credential</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public RsaSetRequest(string credentialName, string privateKey, string publicKey, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name  = credentialName;
     Type  = CredentialType.RSA;
     Value = new RsaCredential {
         PrivateKey = privateKey, PublicKey = publicKey
     };
     AdditionalPermissions = additionalPermissions;
     Mode = overwriteMode;
 }
Example #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UserSetRequest"/> class.
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="userName">Name of the user</param>
 /// <param name="password">Password of the user</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public UserSetRequest(string credentialName, string userName, string password, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name  = credentialName;
     Type  = CredentialType.User;
     Value = new UserCredential {
         Username = userName, Password = password
     };
     AdditionalPermissions = additionalPermissions;
     Mode = overwriteMode;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RsaGenerationRequest"/> class.
 /// Use to request a new RSA Credential
 /// </summary>
 /// <param name="credentialName">Name of credential</param>
 /// <param name="keyLength">Optional Key Length (default: 2048)</param>
 /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
 /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
 public RsaGenerationRequest(string credentialName, CertificateKeyLength keyLength = CertificateKeyLength.Length_2048, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
 {
     Name       = credentialName;
     Type       = CredentialType.RSA;
     Parameters = new KeyParameters {
         KeyLength = keyLength
     };
     AdditionalPermissions = additionalPermissions;
     Mode = overwriteMode;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="CertificateSetRequest"/> class.
        /// For writing a certificate to CredHub
        /// </summary>
        /// <param name="credentialName">Name of credential to set</param>
        /// <param name="privateKey">Private key value of credential to set</param>
        /// <param name="certificate">Certificate value of credential to set</param>
        /// <param name="certificateAuthority">Certificate authority value of credential to set</param>
        /// <param name="certificateAuthorityName">Name of CA credential in credhub that has signed this certificate</param>
        /// <param name="additionalPermissions">List of additional permissions to set on credential</param>
        /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
        /// <remarks>Must include either the CA or CA Name</remarks>
        public CertificateSetRequest(string credentialName, string privateKey, string certificate, string certificateAuthority = null, string certificateAuthorityName = null, List <CredentialPermission> additionalPermissions = null, OverwiteMode overwriteMode = OverwiteMode.noOverwrite)
        {
            if (!string.IsNullOrEmpty(certificateAuthority) && !string.IsNullOrEmpty(certificateAuthorityName))
            {
                throw new ArgumentException("You must specify either the CA Certificate or the name, not both");
            }

            Name  = credentialName;
            Type  = CredentialType.Certificate;
            Value = new CertificateCredential
            {
                PrivateKey               = privateKey,
                Certificate              = certificate,
                CertificateAuthority     = certificateAuthority,
                CertificateAuthorityName = certificateAuthorityName
            };
            AdditionalPermissions = additionalPermissions;
            Mode = overwriteMode;
        }
Example #12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CertificateGenerationRequest"/> class.
        /// Use to request a new Certificate
        /// </summary>
        /// <param name="credentialName">Name of the credential</param>
        /// <param name="parameters">Variables for certificate generation</param>
        /// <param name="overwriteMode">Overwrite existing credential (default: no-overwrite)</param>
        public CertificateGenerationRequest(string credentialName, CertificateGenerationParameters parameters, OverwiteMode overwriteMode = OverwiteMode.converge)
        {
            var subjects = new List <string> {
                parameters.CommonName, parameters.Organization, parameters.OrganizationUnit, parameters.Locality, parameters.State, parameters.Country
            };

            if (!AtLeastOneProvided(subjects))
            {
                throw new ArgumentException("At least one subject value, such as common name or organization must be defined to generate the certificate");
            }

            if (string.IsNullOrEmpty(parameters.CertificateAuthority) && !parameters.IsCertificateAuthority && !parameters.SelfSign)
            {
                throw new ArgumentException("At least one signing parameter must be specified");
            }

            Name       = credentialName;
            Type       = CredentialType.Certificate;
            Parameters = parameters;
            Mode       = overwriteMode;
        }