+
+
+ Calculate the numbers u1, u2, and u3 such that:
+
+ u1 * a + u2 * b = u3
+
+ where u3 is the greatest common divider of a and b.
+ a and b using the extended Euclid algorithm (refer p. 323
+ of The Art of Computer Programming vol 2, 2nd ed).
+ This also seems to have the side effect of calculating
+ some form of multiplicative inverse.
+
+ @param a First number to calculate gcd for
+ @param b Second number to calculate gcd for
+ @param u1Out the return object for the u1 value
+ @return The greatest common divisor of a and b
+
+
+ return w with w = x * x - w is assumed to have enough space.
+
+
+ return x with x = y * z - x is assumed to have enough space.
+
+
+ Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size)
+
+
+ Montgomery multiplication: a = x * y * R^(-1) mod m
+
+ Based algorithm 14.36 of Handbook of Applied Cryptography.
+
+
m, x, y should have length n
+
a should have length (n + 1)
+
b = 2^32, R = b^n
+
+ The result is put in x
+
+ NOTE: the indices of x, y, m, a different in HAC and in Java
+
+
+ return x = x % y - done in place (y value preserved)
+
+
+ do a left shift - this returns a new array.
+
+
+ do a right shift - this does it in place.
+
+
+ do a right shift by one - this does it in place.
+
+
+ returns x = x - y - we assume x is >= y
+
+
+ Class representing a simple version of a big decimal. A
+ SimpleBigDecimal is basically a
+ {@link java.math.BigInteger BigInteger} with a few digits on the right of
+ the decimal point. The number of (binary) digits on the right of the decimal
+ point is called the scale of the SimpleBigDecimal.
+ Unlike in {@link java.math.BigDecimal BigDecimal}, the scale is not adjusted
+ automatically, but must be set manually. All SimpleBigDecimals
+ taking part in the same arithmetic operation must have equal scale. The
+ result of a multiplication of two SimpleBigDecimals returns a
+ SimpleBigDecimal with double scale.
+
+
+ Returns a SimpleBigDecimal representing the same numerical
+ value as value.
+ @param value The value of the SimpleBigDecimal to be
+ created.
+ @param scale The scale of the SimpleBigDecimal to be
+ created.
+ @return The such created SimpleBigDecimal.
+
+
+ Constructor for SimpleBigDecimal. The value of the
+ constructed SimpleBigDecimal Equals bigInt /
+ 2scale.
+ @param bigInt The bigInt value parameter.
+ @param scale The scale of the constructed SimpleBigDecimal.
+
+
+ Class holding methods for point multiplication based on the window
+ τ-adic nonadjacent form (WTNAF). The algorithms are based on the
+ paper "Improved Algorithms for Arithmetic on Anomalous Binary Curves"
+ by Jerome A. Solinas. The paper first appeared in the Proceedings of
+ Crypto 1997.
+
+
+ The window width of WTNAF. The standard value of 4 is slightly less
+ than optimal for running time, but keeps space requirements for
+ precomputation low. For typical curves, a value of 5 or 6 results in
+ a better running time. When changing this value, the
+ αu's must be computed differently, see
+ e.g. "Guide to Elliptic Curve Cryptography", Darrel Hankerson,
+ Alfred Menezes, Scott Vanstone, Springer-Verlag New York Inc., 2004,
+ p. 121-122
+
+
+ 24
+
+
+ The αu's for a=0 as an array
+ of ZTauElements.
+
+
+ The αu's for a=0 as an array
+ of TNAFs.
+
+
+ The αu's for a=1 as an array
+ of ZTauElements.
+
+
+ The αu's for a=1 as an array
+ of TNAFs.
+
+
+ Computes the norm of an element λ of
+ Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The norm of λ.
+
+
+ Computes the norm of an element λ of
+ R[τ], where λ = u + vτ
+ and u and u are real numbers (elements of
+ R).
+ @param mu The parameter μ of the elliptic curve.
+ @param u The real part of the element λ of
+ R[τ].
+ @param v The τ-adic part of the element
+ λ of R[τ].
+ @return The norm of λ.
+
+
+ Rounds an element λ of R[τ]
+ to an element of Z[τ], such that their difference
+ has minimal norm. λ is given as
+ λ = λ0 + λ1τ.
+ @param lambda0 The component λ0.
+ @param lambda1 The component λ1.
+ @param mu The parameter μ of the elliptic curve. Must
+ equal 1 or -1.
+ @return The rounded element of Z[τ].
+ @throws ArgumentException if lambda0 and
+ lambda1 do not have same scale.
+
+
+ Approximate division by n. For an integer
+ k, the value λ = s k / n is
+ computed to c bits of accuracy.
+ @param k The parameter k.
+ @param s The curve parameter s0 or
+ s1.
+ @param vm The Lucas Sequence element Vm.
+ @param a The parameter a of the elliptic curve.
+ @param m The bit length of the finite field
+ Fm.
+ @param c The number of bits of accuracy, i.e. the scale of the returned
+ SimpleBigDecimal.
+ @return The value λ = s k / n computed to
+ c bits of accuracy.
+
+
+ Computes the τ-adic NAF (non-adjacent form) of an
+ element λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ].
+ @return The τ-adic NAF of λ.
+
+
+ Applies the operation τ() to an
+ AbstractF2mPoint.
+ @param p The AbstractF2mPoint to which τ() is applied.
+ @return τ(p)
+
+
+ Returns the parameter μ of the elliptic curve.
+ @param curve The elliptic curve from which to obtain μ.
+ The curve must be a Koblitz curve, i.e. a Equals
+ 0 or 1 and b Equals
+ 1.
+ @return μ of the elliptic curve.
+ @throws ArgumentException if the given ECCurve is not a Koblitz
+ curve.
+
+
+ Calculates the Lucas Sequence elements Uk-1 and
+ Uk or Vk-1 and
+ Vk.
+ @param mu The parameter μ of the elliptic curve.
+ @param k The index of the second element of the Lucas Sequence to be
+ returned.
+ @param doV If set to true, computes Vk-1 and
+ Vk, otherwise Uk-1 and
+ Uk.
+ @return An array with 2 elements, containing Uk-1
+ and Uk or Vk-1
+ and Vk.
+
+
+ Computes the auxiliary value tw. If the width is
+ 4, then for mu = 1, tw = 6 and for
+ mu = -1, tw = 10
+ @param mu The parameter μ of the elliptic curve.
+ @param w The window width of the WTNAF.
+ @return the auxiliary value tw
+
+
+ Computes the auxiliary values s0 and
+ s1 used for partial modular reduction.
+ @param curve The elliptic curve for which to compute
+ s0 and s1.
+ @throws ArgumentException if curve is not a
+ Koblitz curve (Anomalous Binary Curve, ABC).
+
+
+ Partial modular reduction modulo
+ (τm - 1)/(τ - 1).
+ @param k The integer to be reduced.
+ @param m The bitlength of the underlying finite field.
+ @param a The parameter a of the elliptic curve.
+ @param s The auxiliary values s0 and
+ s1.
+ @param mu The parameter μ of the elliptic curve.
+ @param c The precision (number of bits of accuracy) of the partial
+ modular reduction.
+ @return ρ := k partmod (τm - 1)/(τ - 1)
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by a BigInteger using the reduced τ-adic
+ NAF (RTNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param k The BigInteger by which to Multiply p.
+ @return k * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to Multiply.
+ @param lambda The element λ of
+ Z[τ].
+ @return λ * p
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the τ-adic NAF (TNAF) method, given the TNAF
+ of λ.
+ @param p The AbstractF2mPoint to Multiply.
+ @param u The the TNAF of λ..
+ @return λ * p
+
+
+ Computes the [τ]-adic window NAF of an element
+ λ of Z[τ].
+ @param mu The parameter μ of the elliptic curve.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @param width The window width of the resulting WNAF.
+ @param pow2w 2width.
+ @param tw The auxiliary value tw.
+ @param alpha The αu's for the window width.
+ @return The [τ]-adic window NAF of
+ λ.
+
+
+ Does the precomputation for WTNAF multiplication.
+ @param p The ECPoint for which to do the precomputation.
+ @param a The parameter a of the elliptic curve.
+ @return The precomputation array for p.
+
+
+ Class representing an element of Z[τ]. Let
+ λ be an element of Z[τ]. Then
+ λ is given as λ = u + vτ. The
+ components u and v may be used directly, there
+ are no accessor methods.
+ Immutable class.
+
+
+ The "real" part of λ.
+
+
+ The "τ-adic" part of λ.
+
+
+ Constructor for an element λ of
+ Z[τ].
+ @param u The "real" part of λ.
+ @param v The "τ-adic" part of
+ λ.
+
+
+ Simple shift-and-add multiplication. Serves as reference implementation
+ to verify (possibly faster) implementations, and for very small scalars.
+
+ @param p
+ The point to multiply.
+ @param k
+ The multiplier.
+ @return The result of the point multiplication kP.
+
+
+ Base class for an elliptic curve.
+
+
+ Compute a PreCompInfo for a point on this curve, under a given name. Used by
+ ECMultipliers to save the precomputation for this ECPoint for use
+ by subsequent multiplication.
+
+ @param point
+ The ECPoint to store precomputations for.
+ @param name
+ A String used to index precomputations of different types.
+ @param callback
+ Called to calculate the PreCompInfo.
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately.
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system. Where more
+ than one point is to be normalized, this method will generally be more efficient than
+ normalizing each point separately. An (optional) z-scaling factor can be applied; effectively
+ each z coordinate is scaled by this value prior to normalization (but only one
+ actual multiplication is needed).
+
+ @param points
+ An array of points that will be updated in place with their normalized versions,
+ where necessary
+ @param off
+ The start of the range of points to normalize
+ @param len
+ The length of the range of points to normalize
+ @param iso
+ The (optional) z-scaling factor - can be null
+
+
+ Create a cache-safe lookup table for the specified sequence of points. All the points MUST
+ belong to this ECCurve instance, and MUST already be normalized.
+
+
+ Sets the default ECMultiplier, unless already set.
+
+
+ Decode a point on this curve from its ASN.1 encoding. The different
+ encodings are taken account of, including point compression for
+ Fp (X9.62 s 4.2.1 pg 17).
+ @return The decoded point.
+
+
+ Elliptic curve over Fp
+
+
+ The auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Solves a quadratic equation z2 + z = beta(X9.62
+ D.1.6) The other solution is z + 1.
+
+ @param beta
+ The value to solve the quadratic equation for.
+ @return the solution for z2 + z = beta or
+ null if no solution exists.
+
+
+ @return the auxiliary values s0 and
+ s1 used for partial modular reduction for
+ Koblitz curves.
+
+
+ Returns true if this is a Koblitz curve (ABC curve).
+ @return true if this is a Koblitz curve (ABC curve), false otherwise
+
+
+ Elliptic curves over F2m. The Weierstrass equation is given by
+ y2 + xy = x3 + ax2 + b.
+
+
+ The exponent m of F2m.
+
+
+ TPB: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ PPB: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ TPB: Always set to 0
+ PPB: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ The point at infinity on this curve.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Trinomial Polynomial Basis (TPB).
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+
+
+ Constructor for Pentanomial Polynomial Basis (PPB).
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param a The coefficient a in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param b The coefficient b in the Weierstrass equation
+ for non-supersingular elliptic curves over
+ F2m.
+ @param order The order of the main subgroup of the elliptic curve.
+ @param cofactor The cofactor of the elliptic curve, i.e.
+ #Ea(F2m) = h * n.
+
+
+ Return true if curve uses a Trinomial basis.
+
+ @return true if curve Trinomial, false otherwise.
+
+
+ return the field name for this field.
+
+ @return the string "Fp".
+
+
+ return a sqrt root - the routine verifies that the calculation
+ returns the right value - if none exists it returns null.
+
+
+ Class representing the Elements of the finite field
+ F2m in polynomial basis (PB)
+ representation. Both trinomial (Tpb) and pentanomial (Ppb) polynomial
+ basis representations are supported. Gaussian normal basis (GNB)
+ representation is not supported.
+
+
+ Indicates gaussian normal basis representation (GNB). Number chosen
+ according to X9.62. GNB is not implemented at present.
+
+
+ Indicates trinomial basis representation (Tpb). Number chosen
+ according to X9.62.
+
+
+ Indicates pentanomial basis representation (Ppb). Number chosen
+ according to X9.62.
+
+
+ Tpb or Ppb.
+
+
+ The exponent m of F2m.
+
+
+ The LongArray holding the bits.
+
+
+ Constructor for Ppb.
+ @param m The exponent m of
+ F2m.
+ @param k1 The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k2 The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param k3 The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Constructor for Tpb.
+ @param m The exponent m of
+ F2m.
+ @param k The integer k where xm +
+ xk + 1 represents the reduction
+ polynomial f(z).
+ @param x The BigInteger representing the value of the field element.
+
+
+ Checks, if the ECFieldElements a and b
+ are elements of the same field F2m
+ (having the same representation).
+ @param a field element.
+ @param b field element to be compared.
+ @throws ArgumentException if a and b
+ are not elements of the same field
+ F2m (having the same
+ representation).
+
+
+ @return the representation of the field
+ F2m, either of
+ {@link F2mFieldElement.Tpb} (trinomial
+ basis representation) or
+ {@link F2mFieldElement.Ppb} (pentanomial
+ basis representation).
+
+
+ @return the degree m of the reduction polynomial
+ f(z).
+
+
+ @return Tpb: The integer k where xm +
+ xk + 1 represents the reduction polynomial
+ f(z).
+ Ppb: The integer k1 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always returns 0
+ Ppb: The integer k2 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ @return Tpb: Always set to 0
+ Ppb: The integer k3 where xm +
+ xk3 + xk2 + xk1 + 1
+ represents the reduction polynomial f(z).
+
+
+ base class for points on elliptic curves.
+
+
+ Returns the affine x-coordinate after checking that this point is normalized.
+
+ @return The affine x-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the affine y-coordinate after checking that this point is normalized
+
+ @return The affine y-coordinate of this point
+ @throws IllegalStateException if the point is not normalized
+
+
+ Returns the x-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineXCoord if you expect the point to already have been normalized.
+
+ @return the x-coordinate of this point
+
+
+ Returns the y-coordinate.
+
+ Caution: depending on the curve's coordinate system, this may not be the same value as in an
+ affine coordinate system; use Normalize() to get a point where the coordinates have their
+ affine values, or use AffineYCoord if you expect the point to already have been normalized.
+
+ @return the y-coordinate of this point
+
+
+ Normalization ensures that any projective coordinate is 1, and therefore that the x, y
+ coordinates reflect those of the equivalent point in an affine coordinate system.
+
+ @return a new ECPoint instance representing the same point, but with normalized coordinates
+
+
+ return the field element encoded with point compression. (S 4.3.6)
+
+
+ Multiplies this ECPoint by the given number.
+ @param k The multiplicator.
+ @return k * this.
+
+
+ Elliptic curve points over Fp
+
+
+ Create a point which encodes without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+
+
+ Create a point that encodes with or without point compression.
+
+ @param curve the curve to use
+ @param x affine x co-ordinate
+ @param y affine y co-ordinate
+ @param withCompression if true encode with point compression
+
+
+ Elliptic curve points over F2m
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+
+
+ @param curve base curve
+ @param x x point
+ @param y y point
+ @param withCompression true if encode with point compression.
+
+
+ Interface for classes encapsulating a point multiplication algorithm
+ for ECPoints.
+
+
+ Multiplies the ECPoint p by k, i.e.
+ p is added k times to itself.
+ @param p The ECPoint to be multiplied.
+ @param k The factor by which p is multiplied.
+ @return p multiplied by k.
+
+
+ Class holding precomputation data for fixed-point multiplications.
+
+
+ Lookup table for the precomputed ECPoints used for a fixed point multiplication.
+
+
+ The width used for the precomputation. If a larger width precomputation
+ is already available this may be larger than was requested, so calling
+ code should refer to the actual width.
+
+
+ Interface for classes storing precomputation data for multiplication
+ algorithms. Used as a Memento (see GOF patterns) for
+ WNafMultiplier.
+
+
+ Class implementing the WNAF (Window Non-Adjacent Form) multiplication
+ algorithm.
+
+
+ Multiplies this by an integer k using the
+ Window NAF method.
+ @param k The integer by which this is multiplied.
+ @return A new ECPoint which equals this
+ multiplied by k.
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Class holding precomputation data for the WNAF (Window Non-Adjacent Form)
+ algorithm.
+
+
+ Array holding the precomputed ECPoints used for a Window
+ NAF multiplication.
+
+
+ Array holding the negations of the precomputed ECPoints used
+ for a Window NAF multiplication.
+
+
+ Holds an ECPoint representing Twice(this). Used for the
+ Window NAF multiplication to create or extend the precomputed values.
+
+
+ Computes the Window NAF (non-adjacent Form) of an integer.
+ @param width The width w of the Window NAF. The width is
+ defined as the minimal number w, such that for any
+ w consecutive digits in the resulting representation, at
+ most one is non-zero.
+ @param k The integer of which the Window NAF is computed.
+ @return The Window NAF of the given width, such that the following holds:
+ k = ∑i=0l-1 ki2i
+ , where the ki denote the elements of the
+ returned byte[].
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @return the window size to use
+
+
+ Determine window width to use for a scalar multiplication of the given size.
+
+ @param bits the bit-length of the scalar to multiply by
+ @param windowSizeCutoffs a monotonically increasing list of bit sizes at which to increment the window width
+ @return the window size to use
+
+
+ Class implementing the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by k using the reduced τ-adic NAF (RTNAF)
+ method.
+ @param p The AbstractF2mPoint to multiply.
+ @param k The integer by which to multiply k.
+ @return p multiplied by k.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ] using
+ the τ-adic NAF (TNAF) method.
+ @param p The AbstractF2mPoint to multiply.
+ @param lambda The element λ of
+ Z[τ] of which to compute the
+ [τ]-adic NAF.
+ @return p multiplied by λ.
+
+
+ Multiplies a {@link org.bouncycastle.math.ec.AbstractF2mPoint AbstractF2mPoint}
+ by an element λ of Z[τ]
+ using the window τ-adic NAF (TNAF) method, given the
+ WTNAF of λ.
+ @param p The AbstractF2mPoint to multiply.
+ @param u The the WTNAF of λ..
+ @return λ * p
+
+
+ Class holding precomputation data for the WTNAF (Window
+ τ-adic Non-Adjacent Form) algorithm.
+
+
+ Array holding the precomputed AbstractF2mPoints used for the
+ WTNAF multiplication in
+ {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply()
+ WTauNafMultiplier.multiply()}.
+
+
+
+ Utility class for creating IDigest objects from their names/Oids
+
+
+
+ Use the specified instance of IRandomGenerator as random source.
+
+ This constructor performs no seeding of either the IRandomGenerator or the
+ constructed SecureRandom. It is the responsibility of the client to provide
+ proper seed material as necessary/appropriate for the given IRandomGenerator
+ implementation.
+
+ The source to generate all random bytes from.
+
+
+ base constructor.
+
+
+ create a SecurityUtilityException with the given message.
+
+ @param message the message to be carried with the exception.
+
+
+ General array utilities.
+
+
+
+ Are two arrays equal.
+
+ Left side.
+ Right side.
+ True if equal.
+
+
+
+ A constant time equals comparison - does not terminate early if
+ test will fail.
+
+ first array
+ second array
+ true if arrays equal, false otherwise.
+
+
+ Make a copy of a range of bytes from the passed in data array. The range can
+ extend beyond the end of the input array, in which case the return array will
+ be padded with zeroes.
+
+ @param data the array from which the data is to be copied.
+ @param from the start index at which the copying should take place.
+ @param to the final index of the range (exclusive).
+
+ @return a new byte array containing the range given.
+
+
+ BigInteger utilities.
+
+
+ Return the passed in value as an unsigned byte array.
+
+ @param value value to be converted.
+ @return a byte array without a leading zero byte if present in the signed encoding.
+
+
+ Return the passed in value as an unsigned byte array of specified length, zero-extended as necessary.
+
+ @param length desired length of result array.
+ @param n value to be converted.
+ @return a byte array of specified length, with leading zeroes as necessary given the size of n.
+
+
+ Return a random BigInteger not less than 'min' and not greater than 'max'
+
+ @param min the least value that may be generated
+ @param max the greatest value that may be generated
+ @param random the source of randomness
+ @return a random BigInteger value in the range [min,max]
+
+
+
+ Class to decode and encode Hex.
+
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ encode the input data producing a Hex encoded byte array.
+
+ @return a byte array containing the Hex encoded data.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ Hex encode the byte data writing it to the given output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded input data. It is assumed the input data is valid.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data - whitespace will be ignored.
+
+ @return a byte array representing the decoded data.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ encode the input data producing a Hex output stream.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded byte data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+ decode the Hex encoded string data writing it to the given output stream,
+ whitespace characters will be ignored.
+
+ @return the number of bytes produced.
+
+
+
+ Produce a copy of this object with its configuration and in its current state.
+
+
+ The returned object may be used simply to store the state, or may be used as a similar object
+ starting from the copied state.
+
+
+
+
+ Restore a copied object state into this object.
+
+
+ Implementations of this method should try to avoid or minimise memory allocation to perform the reset.
+
+ an object originally {@link #copy() copied} from an object of the same type as this instance.
+ if the provided object is not of the correct type.
+ if the other parameter is in some other way invalid.
+
+
+ Exception to be thrown on a failure to reset an object implementing Memoable.
+
+ The exception extends InvalidCastException to enable users to have a single handling case,
+ only introducing specific handling of this one if required.
+
+
+
+ Basic Constructor.
+
+ @param msg message to be associated with this exception.
+
+
+
+ Implements certificate support for host algorithm.
+
+
+
+
+ Gets the host key data.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The host key name.
+
+
+
+ Signs the specified data.
+
+ The data.
+ Signed data.
+ Always.
+
+
+
+ Verifies the signature.
+
+ The data.
+ The signature.
+ if signature was successfully verified; otherwise .
+ Always.
+
+
+
+ Base class for asymmetric cipher implementations.
+
+
+
+
+ Gets the minimum data size.
+
+
+ The minimum data size.
+
+
+
+ BCrypt implementation.
+
+
+ BCrypt implements OpenBSD-style Blowfish password hashing using the scheme described in
+ "A Future-
+ Adaptable Password Scheme" by Niels Provos and David Mazieres.
+
+
+ This password hashing system tries to thwart off-line password cracking using a
+ computationally-intensive hashing algorithm, based on Bruce Schneier's Blowfish cipher.
+ The work factor of the algorithm is parameterised, so it can be increased as computers
+ get faster.
+
+
+ Usage is really simple. To hash a password for the first time, call the method with a random salt, like this:
+
+ string pw_hash = BCrypt.HashPassword(plain_password);
+
+ To check whether a plaintext password matches one that has been hashed previously,
+ use the method:
+
+
+ if (BCrypt.Verify(candidate_password, stored_hash))
+ Console.WriteLine("It matches");
+ else
+ Console.WriteLine("It does not match");
+
+
+ The method takes an optional parameter (workFactor) that
+ determines the computational complexity of the hashing:
+
+
+ string strong_salt = BCrypt.GenerateSalt(10);
+ string stronger_salt = BCrypt.GenerateSalt(12);
+
+
+ The amount of work increases exponentially (2^workFactor), so each increment is twice
+ as much work. The default workFactor is 10, and the valid range is 4 to 31.
+
+
+
+
+
+ Hash a string using the OpenBSD bcrypt scheme and a salt generated by .
+
+ Just an alias for HashPassword.
+ The string to hash.
+ The hashed string.
+
+
+
+ Hash a string using the OpenBSD bcrypt scheme and a salt generated by .
+
+ Just an alias for HashPassword.
+ The string to hash.
+ The log2 of the number of rounds of hashing to apply - the work
+ factor therefore increases as 2^workFactor.
+ The hashed string.
+
+
+
+ Hash a password using the OpenBSD bcrypt scheme and a salt generated by .
+
+ The password to hash.
+ The hashed password.
+
+
+
+ Hash a password using the OpenBSD bcrypt scheme and a salt generated by using the given .
+
+ The password to hash.
+ The log2 of the number of rounds of hashing to apply - the work
+ factor therefore increases as 2^workFactor.
+ The hashed password.
+
+
+ Hash a password using the OpenBSD bcrypt scheme.
+ Thrown when one or more arguments have unsupported or
+ illegal values.
+ The password to hash.
+ the salt to hash with (perhaps generated using BCrypt.gensalt).
+ The hashed password
+
+
+
+ Generate a salt for use with the method.
+
+ The log2 of the number of rounds of hashing to apply - the work
+ factor therefore increases as 2**workFactor.
+ A base64 encoded salt value.
+
+
+
+ Generate a salt for use with the method
+ selecting a reasonable default for the number of hashing rounds to apply.
+
+ A base64 encoded salt value.
+
+
+
+ Verifies that the hash of the given matches the provided
+
+
+ The text to verify.
+ The previously-hashed password.
+ true if the passwords match, false otherwise.
+
+
+
+ Encode a byte array using bcrypt's slightly-modified base64 encoding scheme. Note that this
+ is *not* compatible with the standard MIME-base64 encoding.
+
+ Thrown when one or more arguments have unsupported or
+ illegal values.
+ The byte array to encode.
+ The number of bytes to encode.
+ Base64-encoded string.
+
+
+
+ Decode a string encoded using bcrypt's base64 scheme to a byte array. Note that this is *not*
+ compatible with the standard MIME-base64 encoding.
+
+ Thrown when one or more arguments have unsupported or
+ illegal values.
+ The string to decode.
+ The maximum bytes to decode.
+ The decoded byte array.
+
+
+
+ Look up the 3 bits base64-encoded by the specified character, range-checking against
+ conversion table.
+
+ The base64-encoded value.
+ The decoded value of x.
+
+
+ Blowfish encipher a single 64-bit block encoded as two 32-bit halves.
+ An array containing the two 32-bit half blocks.
+ The position in the array of the blocks.
+
+
+ Cycically extract a word of key material.
+ The string to extract the data from.
+ [in,out] The current offset.
+ The next word of material from data.
+
+
+ Initializes the Blowfish key schedule.
+
+
+ Key the Blowfish cipher.
+ The key byte array.
+
+
+
+ Perform the "enhanced key schedule" step described by Provos and Mazieres in "A Future-
+ Adaptable Password Scheme" http://www.openbsd.org/papers/bcrypt-paper.ps.
+
+ Salt byte array.
+ Input byte array.
+
+
+ Perform the central hashing step in the bcrypt scheme.
+ Thrown when one or more arguments have unsupported or
+ illegal values.
+ The input byte array to hash.
+ The salt byte array to hash with.
+ The binary logarithm of the number of rounds of hashing to apply.
+ A byte array containing the hashed result.
+
+
+ Compatibility with new OpenBSD function.
+ Ported from SSHJ library (https://github.com/hierynomus/sshj)
+
+
+
+ Applies the Bcrypt kdf to derive a key and iv from the passphrase,
+ the key/iv are returned in the output variable.
+ Ported from the SSHJ library. https://github.com/hierynomus/sshj
+
+
+
+
+
+
+
+
+ Appends multiple byte arrays into one array.
+
+
+
+
+
+
+ Exception for signalling parse errors.
+
+
+ Default constructor.
+
+
+ Initializes a new instance of .
+ The message.
+
+
+ Initializes a new instance of .
+ The message.
+ The inner exception.
+
+
+
+ Base class for block cipher implementations.
+
+
+
+
+ Gets the size of the block in bytes.
+
+
+ The size of the block in bytes.
+
+
+
+
+ Gets the minimum data size.
+
+
+ The minimum data size.
+
+
+
+
+ Gets the size of the block.
+
+
+ The size of the block.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ Size of the block.
+ Cipher mode.
+ Cipher padding.
+ is .
+
+
+
+ Encrypts the specified data.
+
+ The data.
+ The zero-based offset in at which to begin encrypting.
+ The number of bytes to encrypt from .
+
+ The encrypted data.
+
+
+
+
+ Decrypts the specified data.
+
+ The data.
+
+ The decrypted data.
+
+
+
+
+ Decrypts the specified input.
+
+ The input.
+ The zero-based offset in at which to begin decrypting.
+ The number of bytes to decrypt from .
+
+ The decrypted data.
+
+
+
+
+ Base class for cipher implementation.
+
+
+
+
+ Gets the minimum data size.
+
+
+ The minimum data size.
+
+
+
+
+ Encrypts the specified input.
+
+ The input.
+ Encrypted data.
+
+
+
+ Encrypts the specified input.
+
+ The input.
+ The zero-based offset in at which to begin encrypting.
+ The number of bytes to encrypt from .
+
+ The encrypted data.
+
+
+
+
+ Decrypts the specified input.
+
+ The input.
+
+ The decrypted data.
+
+
+
+
+ Decrypts the specified input.
+
+ The input.
+ The zero-based offset in at which to begin decrypting.
+ The number of bytes to decrypt from .
+
+ The decrypted data.
+
+
+
+
+ Implements digital signature where where asymmetric cipher is used.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The object identifier.
+ The cipher.
+
+
+
+ Verifies the signature.
+
+ The input.
+ The signature.
+
+ if signature was successfully verified; otherwise .
+
+
+
+
+ Creates the signature.
+
+ The input.
+
+ Signed input data.
+
+
+
+
+ Hashes the specified input.
+
+ The input.
+ Hashed data.
+
+
+
+ Encodes hash using DER.
+
+ The hash data.
+
+ DER Encoded byte array.
+
+
+
+
+ AES cipher implementation.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The IV.
+ Enable PKCS7 padding.
+ is .
+ Keysize is not valid for this algorithm.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dispose the instance.
+
+ Set to True to dispose of resouces.
+
+
+
+
+
+
+ Custom AES Cipher Mode, follows System.Security.Cryptography.CipherMode.
+
+
+
+ CBC Mode.
+
+
+ ECB Mode.
+
+
+ OFB Mode.
+
+
+ CFB Mode.
+
+
+ CTS Mode.
+
+
+ CTR Mode.
+
+
+
+ Implements ARCH4 cipher algorithm.
+
+
+
+
+ Holds the state of the RC4 engine.
+
+
+
+
+ Gets the minimum data size.
+
+
+ The minimum data size.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ if set to will disharged first 1536 bytes.
+ is .
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Encrypts the specified input.
+
+ The input.
+ The zero-based offset in at which to begin encrypting.
+ The number of bytes to encrypt from .
+
+ Encrypted data.
+
+
+
+
+ Decrypts the specified input.
+
+ The input.
+
+ The decrypted data.
+
+
+
+
+ Decrypts the specified input.
+
+ The input.
+ The zero-based offset in at which to begin decrypting.
+ The number of bytes to decrypt from .
+
+ The decrypted data.
+
+
+
+
+ Blowfish cipher implementation.
+
+
+
+
+ The s-boxes.
+
+
+
+
+ The p-array.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The padding.
+ is .
+ Keysize is not valid for this algorithm.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ apply the encryption cycle to each value pair in the table.
+
+ The xl.
+ The xr.
+ The table.
+
+
+
+ Implements CAST cipher algorithm.
+
+
+
+
+ The rotating round key.
+
+
+
+
+ The masking round key.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The padding.
+ is .
+ Keysize is not valid for this algorithm.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Sets the subkeys using the same nomenclatureas described in RFC2144.
+
+ The key.
+
+
+
+ The first of the three processing functions for the encryption and decryption.
+
+ The input to be processed.
+ The mask to be used from Km[n].
+ The rotation value to be used.
+
+
+
+ The second of the three processing functions for the encryption and decryption.
+
+ The input to be processed.
+ The mask to be used from Km[n].
+ The rotation value to be used.
+
+
+
+ The third of the three processing functions for the encryption and decryption.
+
+ The input to be processed.
+ The mask to be used from Km[n].
+ The rotation value to be used.
+
+
+
+ Does the 16 rounds to encrypt the block.
+
+ The LH-32bits of the plaintext block.
+ The RH-32bits of the plaintext block.
+ The result.
+
+
+
+ Base class for cipher mode implementations.
+
+
+
+
+ Gets the cipher.
+
+
+
+
+ Gets the IV vector.
+
+
+
+
+ Holds block size of the cipher.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The iv.
+
+
+
+ Initializes the specified cipher mode.
+
+ The cipher.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Base class for cipher padding implementations.
+
+
+
+
+ Pads the specified input to match the block size.
+
+ Size of the block.
+ The input.
+
+ Padded data array.
+
+
+
+
+ Pads the specified input to match the block size.
+
+ Size of the block.
+ The input.
+ The zero-based offset in at which the data to pad starts.
+ The number of bytes in to take into account.
+
+ The padded data array.
+
+
+
+
+ Pads the specified input with a given number of bytes.
+
+ The input.
+ The number of bytes to pad the input with.
+
+ The padded data array.
+
+
+
+
+ Pads the specified input with a given number of bytes.
+
+ The input.
+ The zero-based offset in at which the data to pad starts.
+ The number of bytes in to take into account.
+ The number of bytes to pad the input with.
+
+ The padded data array.
+
+
+
+
+ Implements DES cipher algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The padding.
+ is .
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Generates the working key.
+
+ if set to [encrypting].
+ The key.
+ Generated working key.
+
+
+
+ Validates the key.
+
+
+
+
+ Performs DES function.
+
+ The w key.
+ The input.
+ The in off.
+ The out bytes.
+ The out off.
+
+
+
+ Implements CBC cipher mode.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The iv.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Implements CFB cipher mode.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The iv.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Implements CTR cipher mode.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The iv.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Implements OFB cipher mode.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The iv.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Implements PKCS5 cipher padding.
+
+
+
+
+ Pads the specified input to match the block size.
+
+ The size of the block.
+ The input.
+ The zero-based offset in at which the data to pad starts.
+ The number of bytes in to take into account.
+
+ The padded data array.
+
+
+
+
+ Pads the specified input with a given number of bytes.
+
+ The input.
+ The zero-based offset in at which the data to pad starts.
+ The number of bytes in to take into account.
+ The number of bytes to pad the input with.
+
+ The padded data array.
+
+
+
+
+ Implements PKCS7 cipher padding.
+
+
+
+
+ Pads the specified input to match the block size.
+
+ The size of the block.
+ The input.
+ The zero-based offset in at which the data to pad starts.
+ The number of bytes in to take into account.
+
+ The padded data array.
+
+
+
+
+ Pads the specified input with a given number of bytes.
+
+ The input.
+ The zero-based offset in at which the data to pad starts.
+ The number of bytes in to take into account.
+ The number of bytes to pad the input with.
+
+ The padded data array.
+
+
+
+
+ Implements RSA cipher algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The RSA key.
+
+
+
+ Encrypts the specified data.
+
+ The data.
+ The zero-based offset in at which to begin encrypting.
+ The number of bytes to encrypt from .
+ Encrypted data.
+
+
+
+ Decrypts the specified data.
+
+ The data.
+
+ The decrypted data.
+
+ Only block type 01 or 02 are supported.
+ Thrown when decrypted block type is not supported.
+
+
+
+ Decrypts the specified input.
+
+ The input.
+ The zero-based offset in at which to begin decrypting.
+ The number of bytes to decrypt from .
+
+ The decrypted data.
+
+ Only block type 01 or 02 are supported.
+ Thrown when decrypted block type is not supported.
+
+
+
+ Implements Serpent cipher algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The padding.
+ is .
+ Keysize is not valid for this algorithm.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Expand a user-supplied key material into a session key.
+
+ The user-key bytes to use.
+
+ A session key.
+
+ is not multiple of 4 bytes.
+
+
+
+ S0 - { 3, 8,15, 1,10, 6, 5,11,14,13, 4, 2, 7, 0, 9,12 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvSO - {13, 3,11, 0,10, 6, 5,12, 1,14, 4, 7,15, 9, 8, 2 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S1 - {15,12, 2, 7, 9, 0, 5,10, 1,11,14, 8, 6,13, 3, 4 } - 14 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS1 - { 5, 8, 2,14,15, 6,12, 3,11, 4, 7, 9, 1,13,10, 0 } - 14 steps.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S2 - { 8, 6, 7, 9, 3,12,10,15,13, 1,14, 4, 0,11, 5, 2 } - 16 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS2 - {12, 9,15, 4,11,14, 1, 2, 0, 3, 6,13, 5, 8,10, 7 } - 16 steps.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S3 - { 0,15,11, 8,12, 9, 6, 3,13, 1, 2, 4,10, 7, 5,14 } - 16 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS3 - { 0, 9,10, 7,11,14, 6,13, 3, 5,12, 2, 4, 8,15, 1 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S4 - { 1,15, 8, 3,12, 0,11, 6, 2, 5, 4,10, 9,14, 7,13 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS4 - { 5, 0, 8, 3,10, 9, 7,14, 2,12,11, 6, 4,15,13, 1 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S5 - {15, 5, 2,11, 4,10, 9,12, 0, 3,14, 8,13, 6, 7, 1 } - 16 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS5 - { 8,15, 2, 9, 4, 1,13,14,11, 6, 5, 3, 7,12,10, 0 } - 16 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S6 - { 7, 2,12, 5, 8, 4, 6,11,14, 9, 1,15,13, 3,10, 0 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS6 - {15,10, 1,13, 5, 3, 6, 0, 4, 9,14, 7, 2,12, 8,11 } - 15 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ S7 - { 1,13,15, 0,14, 8, 2,11, 7, 4,12,10, 9, 3, 5, 6 } - 16 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ InvS7 - { 3, 0, 6,13, 9,14,15, 8, 5,12,11, 7,10, 1, 4, 2 } - 17 terms.
+
+ A.
+ The b.
+ The c.
+ The d.
+
+
+
+ Apply the linear transformation to the register set.
+
+
+
+
+ Apply the inverse of the linear transformation to the register set.
+
+
+
+
+ Implements 3DES cipher algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The padding.
+ is .
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Validates the key.
+
+
+
+
+ Implements Twofish cipher algorithm.
+
+
+
+ Define the fixed p0/p1 permutations used in keyed S-box lookup.
+ By changing the following constant definitions, the S-boxes will
+ automatically Get changed in the Twofish engine.
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The mode.
+ The padding.
+ is .
+ Keysize is not valid for this algorithm.
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+ Use (12, 8) Reed-Solomon code over GF(256) to produce
+ a key S-box 32-bit entity from 2 key material 32-bit
+ entities.
+
+ @param k0 first 32-bit entity
+ @param k1 second 32-bit entity
+ @return Remainder polynomial Generated using RS code
+
+
+ Reed-Solomon code parameters: (12,8) reversible code:
+
+
+ G(x) = x^4 + (a+1/a)x^3 + ax^2 + (a+1/a)x + 1
+
+ where a = primitive root of field generator 0x14D.
+
+
+
+
+ Base class for signature implementations.
+
+
+
+
+ Verifies the signature.
+
+ The input.
+ The signature.
+
+ if signature was successfully verified; otherwise .
+
+
+
+
+ Creates the signature.
+
+ The input.
+ Signed input data.
+
+
+
+ Implements DSA digital signature algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The DSA key.
+ is .
+
+
+
+ Verifies the signature.
+
+ The input.
+ The signature.
+
+ if signature was successfully verified; otherwise .
+
+ Invalid signature.
+
+
+
+ Creates the signature.
+
+ The input.
+
+ Signed input data.
+
+ Invalid DSA key.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Implements ECDSA digital signature algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The ECDSA key.
+ is .
+
+
+
+ Verifies the signature.
+
+ The input.
+ The signature.
+
+ if signature was successfully verified; otherwise .
+
+
+
+
+ Creates the signature.
+
+ The input.
+
+ Signed input data.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Implements ECDSA digital signature algorithm.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The ED25519Key key.
+ is .
+
+
+
+ Verifies the signature.
+
+ The input.
+ The signature.
+
+ if signature was successfully verified; otherwise .
+
+ Invalid signature.
+
+
+
+ Creates the signature.
+
+ The input.
+
+ Signed input data.
+
+ Invalid ED25519Key key.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Computes a Hash-based Message Authentication Code (HMAC) by using the hash function.
+
+
+
+
+ Initializes a new instance of the class with the specified key.
+
+ The key.
+
+
+
+ Initializes a new instance of the class with the specified key
+ and size of the computed hash code.
+
+ The key.
+ The size, in bits, of the computed hash code.
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Finalizes the hash computation after the last data is processed by the cryptographic stream object.
+
+
+ The computed hash code.
+
+
+
+
+ Computes a Hash-based Message Authentication Code (HMAC) by using the hash function.
+
+
+
+
+ Initializes a new instance of the class with the specified key.
+
+ The key.
+
+
+
+ Initializes a new instance of the class with the specified key and size of the computed hash code.
+
+ The key.
+ The size, in bits, of the computed hash code.
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Finalizes the hash computation after the last data is processed by the cryptographic stream object.
+
+
+ The computed hash code.
+
+
+
+
+ Computes a Hash-based Message Authentication Code (HMAC) by using the hash function.
+
+
+
+
+ Initializes a new instance of the class with the specified key.
+
+ The key.
+
+
+
+ Initializes a new instance of the class with the specified key
+ and size of the computed hash code.
+
+ The key.
+ The size, in bits, of the computed hash code.
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Finalizes the hash computation after the last data is processed by the cryptographic stream object.
+
+
+ The computed hash code.
+
+
+
+
+ Computes a Hash-based Message Authentication Code (HMAC) by using the hash function.
+
+
+
+
+ Initializes a new instance of the class with the specified key.
+
+ The key.
+
+
+
+ Initializes a new instance of the class with the specified key
+ and size of the computed hash code.
+
+ The key.
+ The size, in bits, of the computed hash code.
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Finalizes the hash computation after the last data is processed by the cryptographic stream object.
+
+
+ The computed hash code.
+
+
+
+
+ Computes a Hash-based Message Authentication Code (HMAC) by using the hash function.
+
+
+
+
+ Initializes a new instance of the class with the specified key.
+
+ The key.
+
+
+
+ Initializes a new instance of the class with the specified key
+ and size of the computed hash code.
+
+ The key.
+ The size, in bits, of the computed hash code.
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Finalizes the hash computation after the last data is processed by the cryptographic stream object.
+
+
+ The computed hash code.
+
+
+
+
+ Implements RSA digital signature algorithm.
+
+
+
+
+ Initializes a new instance of the class with the SHA-1 hash algorithm.
+
+ The RSA key.
+
+
+
+ Initializes a new instance of the class.
+
+ The RSA key.
+ The hash algorithm to use in the digital signature.
+
+
+
+ Hashes the specified input.
+
+ The input.
+
+ Hashed data.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+
+ Base class of stream cipher algorithms.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ is .
+
+
+
+ Base class for symmetric cipher implementations.
+
+
+
+
+ Gets the key.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ is .
+
+
+
+ Encrypts the specified region of the input byte array and copies the encrypted data to the specified region of the output byte array.
+
+ The input data to encrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write encrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes encrypted.
+
+
+
+
+ Decrypts the specified region of the input byte array and copies the decrypted data to the specified region of the output byte array.
+
+ The input data to decrypt.
+ The offset into the input byte array from which to begin using data.
+ The number of bytes in the input byte array to use as data.
+ The output to which to write decrypted data.
+ The offset into the output byte array from which to begin writing data.
+
+ The number of bytes decrypted.
+
+
+
+
+ Contains DSA private and public key.
+
+
+
+
+ Gets the P.
+
+
+
+
+ Gets the Q.
+
+
+
+
+ Gets the G.
+
+
+
+
+ Gets public key Y.
+
+
+
+
+ Gets private key X.
+
+
+
+
+ Gets the length of the key.
+
+
+ The length of the key.
+
+
+
+
+ Gets the digital signature.
+
+
+
+
+ Gets the DSA public key.
+
+
+ An array whose values are:
+
+ 0
+ 1
+ 2
+ 3
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The encoded public key data.
+
+
+
+ Initializes a new instance of the class.
+
+ DER encoded private key data.
+
+
+
+ Initializes a new instance of the class.
+
+ The p.
+ The q.
+ The g.
+ The y.
+ The x.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Contains ECDSA (ecdsa-sha2-nistp{256,384,521}) private and public key.
+
+
+
+
+ Gets the SSH name of the ECDSA Key.
+
+
+ The SSH name of the ECDSA Key.
+
+
+
+
+ Gets the HashAlgorithm to use.
+
+
+
+
+ Gets the length of the key.
+
+
+ The length of the key.
+
+
+
+
+ Gets the digital signature.
+
+
+
+
+ Gets the ECDSA public key.
+
+
+ An array with the ASCII-encoded curve identifier (e.g. "nistp256")
+ at index 0, and the public curve point Q at index 1.
+
+
+
+
+ Gets the PrivateKey Bytes.
+
+
+
+
+ Gets the object.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The encoded public key data.
+
+
+
+ Initializes a new instance of the class.
+
+ The curve name.
+ Value of publickey.
+ Value of privatekey.
+
+
+
+ Initializes a new instance of the class.
+
+ DER encoded private key data.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Contains ED25519 private and public key.
+
+
+
+
+ Gets the name of the key.
+
+
+ The name of the key.
+
+
+
+
+ Gets the Ed25519 public key.
+
+
+ An array with encoded at index 0.
+
+
+
+
+ Gets the length of the key.
+
+
+ The length of the key.
+
+
+
+
+ Gets the digital signature.
+
+
+
+
+ Gets the PublicKey Bytes.
+
+
+
+
+ Gets the PrivateKey Bytes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The encoded public key data.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The private key data k || ENC(A) as described in RFC 8032.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Base class for asymmetric cipher algorithms.
+
+
+
+
+ Gets the default digital signature implementation for this key.
+
+
+
+
+ Gets the public key.
+
+
+ The public.
+
+
+
+
+ Gets the length of the key.
+
+
+ The length of the key.
+
+
+
+
+ Gets or sets the key comment.
+
+
+
+
+ Signs the specified data with the key.
+
+ The data to sign.
+
+ Signed data.
+
+
+
+
+ Verifies the signature.
+
+ The data to verify.
+ The signature to verify against.
+ is signature was successfully verifies; otherwise .
+
+
+
+ Contains the RSA private and public key.
+
+
+
+
+ Gets the name of the key.
+
+
+ The name of the key.
+
+
+
+
+ Gets the modulus.
+
+
+ The modulus.
+
+
+
+
+ Gets the exponent.
+
+
+ The exponent.
+
+
+
+
+ Gets the D.
+
+
+ The D.
+
+
+
+
+ Gets the P.
+
+
+ The P.
+
+
+
+
+ Gets the Q.
+
+
+ The Q.
+
+
+
+
+ Gets the DP.
+
+
+ The DP.
+
+
+
+
+ Gets the DQ.
+
+
+ The DQ.
+
+
+
+
+ Gets the inverse Q.
+
+
+ The inverse Q.
+
+
+
+
+ Gets the length of the key.
+
+
+ The length of the key.
+
+
+
+
+ Gets the digital signature implementation for this key.
+
+
+ An implementation of an RSA digital signature using the SHA-1 hash algorithm.
+
+
+
+
+ Gets the RSA public key.
+
+
+ An array with at index 0, and
+ at index 1.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The encoded public key data.
+
+
+
+ Initializes a new instance of the class.
+
+ DER encoded private key data.
+
+
+
+ Initializes a new instance of the class.
+
+ The modulus.
+ The exponent.
+ The d.
+ The p.
+ The q.
+ The inverse Q.
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Base class for SSH host algorithms.
+
+
+
+
+ Gets the host key name.
+
+
+
+
+ Gets the host key data.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The host key name.
+
+
+
+ Signs the specified data.
+
+ The data.
+ Signed data.
+
+
+
+ Verifies the signature.
+
+ The data.
+ The signature.
+ is signature was successfully verifies; otherwise .
+
+
+
+ Represents a key exchange algorithm.
+
+
+
+
+ Occurs when the host key is received.
+
+
+
+
+ Gets the name of the algorithm.
+
+
+ The name of the algorithm.
+
+
+
+
+ Gets the exchange hash.
+
+
+ The exchange hash.
+
+
+
+
+ Starts the key exchange algorithm.
+
+ The session.
+ The key exchange init message received from the server.
+ Whether to send a key exchange init message in response.
+
+
+
+ Finishes the key exchange algorithm.
+
+
+
+
+ Creates the client-side cipher to use.
+
+
+ The client cipher.
+
+
+
+
+ Creates the server-side cipher to use.
+
+
+ The server cipher.
+
+
+
+
+ Creates the server-side hash algorithm to use.
+
+
+ The server hash algorithm.
+
+
+
+
+ Creates the client-side hash algorithm to use.
+
+
+ The client hash algorithm.
+
+
+
+
+ Creates the compression algorithm to use to deflate data.
+
+
+ The compression method to deflate data.
+
+
+
+
+ Creates the compression algorithm to use to inflate data.
+
+
+ The compression method to inflate data.
+
+
+
+
+ Represents base class for different key exchange algorithm implementations.
+
+
+
+
+ Gets the session.
+
+
+ The session.
+
+
+
+
+ Gets or sets key exchange shared key.
+
+
+ The shared key.
+
+
+
+
+ Gets the exchange hash.
+
+ The exchange hash.
+
+
+
+ Occurs when host key received.
+
+
+
+
+
+
+
+ Finishes key exchange algorithm.
+
+
+
+
+ Creates the server side cipher to use.
+
+ Server cipher.
+
+
+
+ Creates the client side cipher to use.
+
+ Client cipher.
+
+
+
+ Creates the server side hash algorithm to use.
+
+
+ The server-side hash algorithm.
+
+
+
+
+ Creates the client side hash algorithm to use.
+
+
+ The client-side hash algorithm.
+
+
+
+
+ Creates the compression algorithm to use to deflate data.
+
+
+ The compression method.
+
+
+
+
+ Creates the compression algorithm to use to inflate data.
+
+
+ The decompression method.
+
+
+
+
+ Determines whether the specified host key can be trusted.
+
+ The host algorithm.
+
+ if the specified host can be trusted; otherwise, .
+
+
+
+
+ Validates the exchange hash.
+
+ true if exchange hash is valid; otherwise false.
+
+
+
+ Calculates key exchange hash value.
+
+ Key exchange hash.
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Sends SSH message to the server.
+
+ The message.
+
+
+
+ Generates the session key.
+
+ The shared key.
+ The exchange hash.
+ The key.
+ The size.
+
+ The session key.
+
+
+
+
+ Generates the session key.
+
+ The shared key.
+ The exchange hash.
+ The p.
+ The session id.
+
+ The session key.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+
+ Represents base class for Diffie Hellman key exchange algorithm.
+
+
+
+
+ Specifies key exchange group number.
+
+
+
+
+ Specifies key exchange prime number.
+
+
+
+
+ Specifies client payload.
+
+
+
+
+ Specifies server payload.
+
+
+
+
+ Specifies client exchange number.
+
+
+
+
+ Specifies server exchange number.
+
+
+
+
+ Specifies random generated number.
+
+
+
+
+ Specifies host key data.
+
+
+
+
+ Specifies signature data.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Validates the exchange hash.
+
+
+ true if exchange hash is valid; otherwise false.
+
+
+
+
+
+
+
+ Populates the client exchange value.
+
+
+
+
+ Handles the server DH reply message.
+
+ The host key.
+ The server exchange value.
+ The signature.
+
+
+
+ Represents "diffie-hellman-group14-sha1" algorithm implementation.
+
+
+
+
+ Defined in https://tools.ietf.org/html/rfc2409#section-6.2.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets the group prime.
+
+
+ The group prime.
+
+
+
+
+ Represents "diffie-hellman-group14-sha256" algorithm implementation.
+
+
+
+
+ Defined in https://tools.ietf.org/html/rfc2409#section-6.2.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets the group prime.
+
+
+ The group prime.
+
+
+
+
+ Represents "diffie-hellman-group16-sha512" algorithm implementation.
+
+
+
+
+ Defined in https://tools.ietf.org/html/rfc3526#section-5.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Represents "diffie-hellman-group1-sha1" algorithm implementation.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets the group prime.
+
+
+ The group prime.
+
+
+
+
+ Represents "diffie-hellman-group-exchange-sha1" algorithm implementation.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Represents "diffie-hellman-group-exchange-sha256" algorithm implementation.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ Data to hash.
+
+ The hash of the data.
+
+
+
+
+ Base class for "diffie-hellman-group-exchange" algorithms.
+
+
+
+
+ Calculates key exchange hash value.
+
+
+ Key exchange hash.
+
+
+
+
+
+
+
+ Finishes key exchange algorithm.
+
+
+
+
+ Represents "diffie-hellman-group1-sha1" algorithm implementation.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Base class for "diffie-hellman" SHA-256 group algorithm implementations.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Base class for "diffie-hellman" SHA-512 group algorithm implementations.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Gets the group prime.
+
+
+ The group prime.
+
+
+
+
+
+
+
+ Finishes key exchange algorithm.
+
+
+
+
+ Calculates key exchange hash value.
+
+
+ Key exchange hash.
+
+
+
+
+ Specifies client payload.
+
+
+
+
+ Specifies server payload.
+
+
+
+
+ Specifies client exchange.
+
+
+
+
+ Specifies server exchange.
+
+
+
+
+ Specifies host key data.
+
+
+
+
+ Specifies signature data.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Calculates key exchange hash value.
+
+
+ Key exchange hash.
+
+
+
+
+ Validates the exchange hash.
+
+
+ true if exchange hash is valid; otherwise false.
+
+
+
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+
+
+
+ Finishes key exchange algorithm.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Handles the server DH reply message.
+
+ The host key.
+ The server exchange value.
+ The signature.
+
+
+
+ Gets the parameter of the curve.
+
+
+ The parameter of the curve.
+
+
+
+
+
+
+
+ Finishes key exchange algorithm.
+
+
+
+
+ Handles the server DH reply message.
+
+ The host key.
+ The server exchange value.
+ The signature.
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets Curve Parameter.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets Curve Parameter.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Gets algorithm name.
+
+
+
+
+ Gets Curve Parameter.
+
+
+
+
+ Gets the size, in bits, of the computed hash code.
+
+
+ The size, in bits, of the computed hash code.
+
+
+
+
+ Hashes the specified data bytes.
+
+ The hash data.
+
+ The hash of the data.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Implements key support for host algorithm.
+
+
+
+
+ Gets the key used in this host key algorithm.
+
+
+
+
+ Gets the signature implementation used in this host key algorithm.
+
+
+
+
+ Gets the encoded public key data.
+
+
+ The encoded public key data.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The signature format identifier.
+ The key used in this host key algorithm.
+
+
+
+ Initializes a new instance of the class.
+
+ The signature format identifier.
+ The key used in this host key algorithm.
+ The signature implementation used in this host key algorithm.
+
+ The key used by is intended to be equal to .
+ This is not verified.
+
+
+
+
+ Signs and encodes the specified data.
+
+ The data to be signed.
+
+ The encoded signature.
+
+
+
+
+ Verifies the signature.
+
+ The data to verify the signature against.
+ The encoded signature data.
+
+ if is the result of signing
+ with the corresponding private key to .
+
+
+
+
+ Gets or sets the signature format identifier.
+
+
+ The signature format identifier.
+
+
+
+
+ Gets the signature.
+
+
+ The signature.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Called when type specific data need to be loaded.
+
+
+
+
+ Called when type specific data need to be saved.
+
+
+
+
+ Facilitates (de)serializing encoded public key data in the format
+ specified by RFC 4253 section 6.6.
+
+
+ See https://datatracker.ietf.org/doc/html/rfc4253#section-6.6.
+
+
+
+
+ Gets the public key format identifier.
+
+
+
+
+ Gets the public key constituents.
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The encoded public key data.
+
+
+
+ Initializes a new instance of the class.
+
+ The public key format identifer.
+ The public key constituents.
+
+
+
+
+
+
+
+
+
+ Basic factory for creating new services.
+
+
+
+
+ Defines the number of times an authentication attempt with any given
+ can result in before it is disregarded.
+
+
+
+
+ Creates an .
+
+
+ An .
+
+
+
+
+ Creates a new with the specified and
+ .
+
+ The to use for creating a new session.
+ A factory to create instances.
+
+ An for the specified .
+
+ is .
+ is .
+
+
+
+ Creates a new in a given and with
+ the specified operation timeout and encoding.
+
+ The to create the in.
+ The number of milliseconds to wait for an operation to complete, or -1 to wait indefinitely.
+ The encoding.
+ The factory to use for creating SFTP messages.
+
+ An .
+
+
+
+
+ Create a new .
+
+
+ A .
+
+
+
+
+ Negotiates a key exchange algorithm, and creates a for the negotiated
+ algorithm.
+
+ A of the key exchange algorithms supported by the client where key is the name of the algorithm, and value is the type implementing this algorithm.
+ The names of the key exchange algorithms supported by the SSH server.
+
+ A that was negotiated between client and server.
+
+ is .
+ is .
+ No key exchange algorithms are supported by both client and server.
+
+
+
+ Creates a new in a given
+ and with the specified operation timeout.
+
+ The to create the in.
+ The number of milliseconds to wait for an operation to complete, or -1 to wait indefinitely.
+
+ An .
+
+
+
+
+ Creates an for the specified file and with the specified
+ buffer size.
+
+ The file to read.
+ The SFTP session to use.
+ The size of buffer.
+
+ An .
+
+
+
+
+ Creates a new instance.
+
+
+ An .
+
+
+
+
+ Creates a shell stream.
+
+ The SSH session.
+ The TERM environment variable.
+ The terminal width in columns.
+ The terminal width in rows.
+ The terminal width in pixels.
+ The terminal height in pixels.
+ The terminal mode values.
+ The size of the buffer.
+
+ The created instance.
+
+ Client is not connected.
+
+
+ The TERM environment variable contains an identifier for the text window's capabilities.
+ You can get a detailed list of these cababilities by using the ‘infocmp’ command.
+
+
+ The column/row dimensions override the pixel dimensions(when non-zero). Pixel dimensions refer
+ to the drawable area of the window.
+
+
+
+
+
+ Creates an that encloses a path in double quotes, and escapes
+ any embedded double quote with a backslash.
+
+
+ An that encloses a path in double quotes, and escapes any
+ embedded double quote with a backslash.
+ with a shell.
+
+
+
+
+ Creates an that can be used to establish a connection
+ to the server identified by the specified .
+
+ A detailing the server to establish a connection to.
+ A factory to create instances.
+
+ An that can be used to establish a connection to the
+ server identified by the specified .
+
+ is .
+ is .
+ The value of is not supported.
+
+
+
+ Creates an that deals with the SSH protocol
+ version exchange.
+
+
+ An .
+
+
+
+
+ Creates a factory to create instances.
+
+
+ An .
+
+
+
+
+ Provides functionality to connect and interact with SSH server.
+
+
+
+
+ Specifies an infinite waiting period.
+
+
+ The value of this field is -1.
+
+
+
+
+ Specifies maximum packet size defined by the protocol.
+
+
+ 68536 (64 KB + 3000 bytes).
+
+
+
+
+ Holds the initial local window size for the channels.
+
+
+ 2147483647 (2^31 - 1) bytes.
+
+
+ We currently do not define a maximum (remote) window size.
+
+
+
+
+ Holds the maximum size of channel data packets that we receive.
+
+
+ 64 KB.
+
+
+
+ This is the maximum size (in bytes) we support for the data (payload) of a
+ SSH_MSG_CHANNEL_DATA message we receive.
+
+
+ We currently do not enforce this limit.
+
+
+
+
+
+ Specifies an infinite waiting period.
+
+
+ The value of this field is -1 millisecond.
+
+
+
+
+ Controls how many authentication attempts can take place at the same time.
+
+
+ Some server may restrict number to prevent authentication attacks.
+
+
+
+
+ Holds the factory to use for creating new services.
+
+
+
+
+ Holds an object that is used to ensure only a single thread can read from
+ at any given time.
+
+
+
+
+ Holds an object that is used to ensure only a single thread can write to
+ at any given time.
+
+
+ This is also used to ensure that is
+ incremented atomatically.
+
+
+
+
+ Holds an object that is used to ensure only a single thread can dispose
+ at any given time.
+
+
+ This is also used to ensure that will not be disposed
+ while performing a given operation or set of operations on .
+
+
+
+
+ Holds an object that is used to ensure only a single thread can connect
+ and lazy initialize the at any given time.
+
+
+
+
+ Holds metadata about session messages.
+
+
+
+
+ Holds a that is signaled when the message listener loop has completed.
+
+
+
+
+ Specifies outbound packet number.
+
+
+
+
+ Specifies incoming packet number.
+
+
+
+
+ WaitHandle to signal that last service request was accepted.
+
+
+
+
+ WaitHandle to signal that exception was thrown by another thread.
+
+
+
+
+ WaitHandle to signal that key exchange was completed.
+
+
+
+
+ Exception that need to be thrown by waiting thread.
+
+
+
+
+ Specifies whether connection is authenticated.
+
+
+
+
+ Specifies whether user issued Disconnect command or not.
+
+
+
+
+ Holds connection socket.
+
+
+
+
+ Gets the session semaphore that controls session channels.
+
+
+ The session semaphore.
+
+
+
+
+ Gets the next channel number.
+
+
+ The next channel number.
+
+
+
+
+ Gets a value indicating whether the session is connected.
+
+
+ if the session is connected; otherwise, .
+
+
+ This methods returns in all but the following cases:
+
+
+ The is disposed.
+
+
+ The SSH_MSG_DISCONNECT message - which is used to disconnect from the server - has been sent.
+
+
+ The client has not been authenticated successfully.
+
+
+ The listener thread - which is used to receive messages from the server - has stopped.
+
+
+ The socket used to communicate with the server is no longer connected.
+
+
+
+
+
+
+ Gets the session id.
+
+
+ The session id, or if the client has not been authenticated.
+
+
+
+
+ Gets the client init message.
+
+ The client init message.
+
+
+
+ Gets the server version string.
+
+
+ The server version.
+
+
+
+
+ Gets the client version string.
+
+
+ The client version.
+
+
+
+
+ Gets the connection info.
+
+
+ The connection info.
+
+
+
+
+ Occurs when an error occurred.
+
+
+
+
+ Occurs when session has been disconnected from the server.
+
+
+
+
+ Occurs when server identification received.
+
+
+
+
+ Occurs when host key received.
+
+
+
+
+ Occurs when message is received from the server.
+
+
+
+
+ Occurs when message is received from the server.
+
+
+
+
+ Occurs when message is received from the server.
+
+
+
+
+ Occurs when message is received from the server.
+
+
+
+
+ Occurs when message is received from the server.
+
+
+
+
+ Occurs when message is received from the server.
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when a message is received from the SSH server.
+
+
+
+
+ Occurs when a message is received from the SSH server.
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Occurs when message received
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ The factory to use for creating new services.
+ A factory to create instances.
+ is .
+ is .
+ is .
+
+
+
+ Connects to the server.
+
+ Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname.
+ SSH session could not be established.
+ Authentication of SSH session failed.
+ Failed to establish proxy connection.
+
+
+
+ Asynchronously connects to the server.
+
+
+ Please note this function is NOT thread safe.
+ The caller SHOULD limit the number of simultaneous connection attempts to a server to a single connection attempt.
+ The to observe.
+ A that represents the asynchronous connect operation.
+ Socket connection to the SSH server or proxy server could not be established, or an error occurred while resolving the hostname.
+ SSH session could not be established.
+ Authentication of SSH session failed.
+ Failed to establish proxy connection.
+
+
+
+ Disconnects from the server.
+
+
+ This sends a SSH_MSG_DISCONNECT message to the server, waits for the
+ server to close the socket on its end and subsequently closes the client socket.
+
+
+
+
+ Waits for the specified handle or the exception handle for the receive thread
+ to signal within the connection timeout.
+
+ The wait handle.
+ A received package was invalid or failed the message integrity check.
+ None of the handles are signaled in time and the session is not disconnecting.
+ A socket error was signaled while receiving messages from the server.
+
+ When neither handles are signaled in time and the session is not closing, then the
+ session is disconnected.
+
+
+
+
+ Waits for the specified handle or the exception handle for the receive thread
+ to signal within the specified timeout.
+
+ The wait handle.
+ The time to wait for any of the handles to become signaled.
+ A received package was invalid or failed the message integrity check.
+ None of the handles are signaled in time and the session is not disconnecting.
+ A socket error was signaled while receiving messages from the server.
+
+ When neither handles are signaled in time and the session is not closing, then the
+ session is disconnected.
+
+
+
+
+ Waits for the specified to receive a signal, using a
+ to specify the time interval.
+
+ The that should be signaled.
+ A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely.
+
+ A .
+
+
+
+
+ Waits for the specified to receive a signal, using a
+ to specify the time interval.
+
+ The that should be signaled.
+ A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely.
+ When this method returns , contains the .
+
+ A .
+
+
+
+
+ Waits for the specified to receive a signal, using a
+ to specify the time interval.
+
+ The that should be signaled.
+ A that represents the number of milliseconds to wait, or a that represents -1 milliseconds to wait indefinitely.
+ When this method returns , contains the .
+
+ A .
+
+
+
+
+ Waits for the specified handle or the exception handle for the receive thread
+ to signal within the connection timeout.
+
+ The wait handle.
+ A received package was invalid or failed the message integrity check.
+ None of the handles are signaled in time and the session is not disconnecting.
+ A socket error was signaled while receiving messages from the server.
+
+ When neither handles are signaled in time and the session is not closing, then the
+ session is disconnected.
+
+
+
+
+ Waits for the specified handle or the exception handle for the receive thread
+ to signal within the specified timeout.
+
+ The wait handle.
+ The time to wait for any of the handles to become signaled.
+ A received package was invalid or failed the message integrity check.
+ None of the handles are signaled in time and the session is not disconnecting.
+ A socket error was signaled while receiving messages from the server.
+
+
+
+ Sends a message to the server.
+
+ The message to send.
+ The client is not connected.
+ The operation timed out.
+ The size of the packet exceeds the maximum size defined by the protocol.
+
+
+
+ Sends an SSH packet to the server.
+
+ A byte array containing the packet to send.
+ The offset of the packet.
+ The length of the packet.
+ Client is not connected to the server.
+
+
+ The send is performed in a dispose lock to avoid
+ and/or when sending the packet.
+
+
+ This method is only to be used when the connection is established, as the locking
+ overhead is not required while establising the connection.
+
+
+
+
+
+ Sends a message to the server.
+
+ The message to send.
+
+ if the message was sent to the server; otherwise, .
+
+ The size of the packet exceeds the maximum size defined by the protocol.
+
+ This methods returns when the attempt to send the message results in a
+ or a .
+
+
+
+
+ Receives the message from the server.
+
+
+ The incoming SSH message, or if the connection with the SSH server was closed.
+
+
+ We need no locking here since all messages are read by a single thread.
+
+
+
+
+ Called when received.
+
+ message.
+
+
+
+ Called when received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when client is disconnecting from the server.
+
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Called when message received.
+
+ message.
+
+
+
+ Registers SSH message with the session.
+
+ The name of the message to register with the session.
+
+
+
+ Unregister SSH message from the session.
+
+ The name of the message to unregister with the session.
+
+
+
+ Loads a message from a given buffer.
+
+ An array of bytes from which to construct the message.
+ The zero-based byte offset in at which to begin reading.
+ The number of bytes to load.
+
+ A message constructed from .
+
+ The type of the message is not supported.
+
+
+
+ Gets a value indicating whether the socket is connected.
+
+
+ if the socket is connected; otherwise, .
+
+
+
+ As a first check we verify whether is
+ . However, this only returns the state of the socket as of
+ the last I/O operation.
+
+
+ Therefore we use the combination of with mode
+ and to verify if the socket is still connected.
+
+
+ The MSDN doc mention the following on the return value of
+ with mode :
+
+
+ if data is available for reading;
+
+
+ if the connection has been closed, reset, or terminated; otherwise, returns .
+
+
+
+
+ Conclusion: when the return value is - but no data is available for reading - then
+ the socket is no longer connected.
+
+
+ When a is used from multiple threads, there's a race condition
+ between the invocation of and the moment
+ when the value of is obtained. To workaround this issue
+ we synchronize reads from the .
+
+
+ We assume the socket is still connected if the read lock cannot be acquired immediately.
+ In this case, we just return without actually waiting to acquire
+ the lock. We don't want to wait for the read lock if another thread already has it because
+ there are cases where the other thread holding the lock can be waiting indefinitely for
+ a socket read operation to complete.
+
+
+
+
+
+ Performs a blocking read on the socket until bytes are received.
+
+ The to read from.
+ An array of type that is the storage location for the received data.
+ The position in parameter to store the received data.
+ The number of bytes to read.
+
+ The number of bytes read.
+
+ The read has timed-out.
+ The read failed.
+
+
+
+ Shuts down and disposes the socket.
+
+
+
+
+ Listens for incoming message from the server and handles them. This method run as a task on separate thread.
+
+
+
+
+ Raises the event.
+
+ The .
+
+
+
+ Resets connection-specific information to ensure state of a previous connection
+ does not affect new connections.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Gets the connection info.
+
+ The connection info.
+
+
+
+ Gets a that can be used to wait for the message listener loop to complete.
+
+
+ A that can be used to wait for the message listener loop to complete, or
+ when the session has not been connected.
+
+
+
+
+ Create a new SSH session channel.
+
+
+ A new SSH session channel.
+
+
+
+
+ Create a new channel for a locally forwarded TCP/IP port.
+
+
+ A new channel for a locally forwarded TCP/IP port.
+
+
+
+
+ Creates a "forwarded-tcpip" SSH channel.
+
+ The number of the remote channel.
+ The window size of the remote channel.
+ The data packet size of the remote channel.
+
+ A new "forwarded-tcpip" SSH channel.
+
+
+
+
+ Sends a message to the server.
+
+ The message to send.
+ The client is not connected.
+ The operation timed out.
+ The size of the packet exceeds the maximum size defined by the protocol.
+
+
+
+ Sends a message to the server.
+
+ The message to send.
+
+ if the message was sent to the server; otherwise, .
+
+ The size of the packet exceeds the maximum size defined by the protocol.
+
+ This methods returns when the attempt to send the message results in a
+ or a .
+
+
+
+
+ Represents the result of a wait operations.
+
+
+
+
+ The was signaled within the specified interval.
+
+
+
+
+ The was not signaled within the specified interval.
+
+
+
+
+ The session is in a disconnected state.
+
+
+
+
+ The session is in a failed state.
+
+
+
+
+ Implementation of the SSH File Transfer Protocol (SFTP) over SSH.
+
+
+
+
+ Holds the instance that is used to communicate to the
+ SFTP server.
+
+
+
+
+ Holds the operation timeout.
+
+
+
+
+ Holds the size of the buffer.
+
+
+
+
+ Gets or sets the operation timeout.
+
+
+ The timeout to wait until an operation completes. The default value is negative
+ one (-1) milliseconds, which indicates an infinite timeout period.
+
+ The method was called after the client was disposed.
+ represents a value that is less than -1 or greater than milliseconds.
+
+
+
+ Gets or sets the maximum size of the buffer in bytes.
+
+
+ The size of the buffer. The default buffer size is 32768 bytes (32 KB).
+
+
+
+ For write operations, this limits the size of the payload for
+ individual SSH_FXP_WRITE messages. The actual size is always
+ capped at the maximum packet size supported by the peer
+ (minus the size of protocol fields).
+
+
+ For read operations, this controls the size of the payload which
+ is requested from the peer in a SSH_FXP_READ message. The peer
+ will send the requested number of bytes in a SSH_FXP_DATA message,
+ possibly split over multiple SSH_MSG_CHANNEL_DATA messages.
+
+
+ To optimize the size of the SSH packets sent by the peer,
+ the actual requested size will take into account the size of the
+ SSH_FXP_DATA protocol fields.
+
+
+ The size of the each individual SSH_FXP_DATA message is limited to the
+ local maximum packet size of the channel, which is set to 64 KB
+ for SSH.NET. However, the peer can limit this even further.
+
+
+ The method was called after the client was disposed.
+
+
+
+ Gets remote working directory.
+
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Gets sftp protocol version.
+
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Gets the current SFTP session.
+
+
+ The current SFTP session.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ is .
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Connection port.
+ Authentication username.
+ Authentication password.
+ is .
+ is invalid. -or- is or contains only whitespace characters.
+ is not within and .
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Authentication username.
+ Authentication password.
+ is .
+ is invalid. -or- is contains only whitespace characters.
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Connection port.
+ Authentication username.
+ Authentication private key file(s) .
+ is .
+ is invalid. -or- is or contains only whitespace characters.
+ is not within and .
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Authentication username.
+ Authentication private key file(s) .
+ is .
+ is invalid. -or- is or contains only whitespace characters.
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ Specified whether this instance owns the connection info.
+ is .
+
+ If is , the connection info will be disposed when this
+ instance is disposed.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ Specified whether this instance owns the connection info.
+ The factory to use for creating new services.
+ is .
+ is .
+
+ If is , the connection info will be disposed when this
+ instance is disposed.
+
+
+
+
+ Changes remote directory to path.
+
+ New directory path.
+ is .
+ Client is not connected.
+ Permission to change directory denied by remote host. -or- A SSH command was denied by the server.
+ was not found on the remote host.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Changes permissions of file(s) to specified mode.
+
+ File(s) path, may match multiple files.
+ The mode.
+ is .
+ Client is not connected.
+ Permission to change permission on the path(s) was denied by the remote host. -or- A SSH command was denied by the server.
+ was not found on the remote host.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Creates remote directory specified by path.
+
+ Directory path to create.
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to create the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Deletes remote directory specified by path.
+
+ Directory to be deleted path.
+ is or contains only whitespace characters.
+ Client is not connected.
+ was not found on the remote host.
+ Permission to delete the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Deletes remote file specified by path.
+
+ File to be deleted path.
+ is or contains only whitespace characters.
+ Client is not connected.
+ was not found on the remote host.
+ Permission to delete the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Asynchronously deletes remote file specified by path.
+
+ File to be deleted path.
+ The to observe.
+ A that represents the asynchronous delete operation.
+ is or contains only whitespace characters.
+ Client is not connected.
+ was not found on the remote host.
+ Permission to delete the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Renames remote file from old path to new path.
+
+ Path to the old file location.
+ Path to the new file location.
+ is . -or- or is .
+ Client is not connected.
+ Permission to rename the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Renames remote file from old path to new path.
+
+ Path to the old file location.
+ Path to the new file location.
+ if set to then perform a posix rename.
+ is . -or- or is .
+ Client is not connected.
+ Permission to rename the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Asynchronously renames remote file from old path to new path.
+
+ Path to the old file location.
+ Path to the new file location.
+ The to observe.
+ A that represents the asynchronous rename operation.
+ is . -or- or is .
+ Client is not connected.
+ Permission to rename the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Creates a symbolic link from old path to new path.
+
+ The old path.
+ The new path.
+ is . -or- is or contains only whitespace characters.
+ Client is not connected.
+ Permission to create the symbolic link was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Retrieves list of files in remote directory.
+
+ The path.
+ The list callback.
+
+ A list of files.
+
+ is .
+ Client is not connected.
+ Permission to list the contents of the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Asynchronously enumerates the files in remote directory.
+
+ The path.
+ The to observe.
+
+ An of that represents the asynchronous enumeration operation.
+ The enumeration contains an async stream of for the files in the directory specified by .
+
+ is .
+ Client is not connected.
+ Permission to list the contents of the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Begins an asynchronous operation of retrieving list of files in remote directory.
+
+ The path.
+ The method to be called when the asynchronous write operation is completed.
+ A user-provided object that distinguishes this particular asynchronous write request from other requests.
+ The list callback.
+
+ An that references the asynchronous operation.
+
+ The method was called after the client was disposed.
+
+
+
+ Ends an asynchronous operation of retrieving list of files in remote directory.
+
+ The pending asynchronous SFTP request.
+
+ A list of files.
+
+ The object did not come from the corresponding async method on this type.-or- was called multiple times with the same .
+
+
+
+ Gets reference to remote file or directory.
+
+ The path.
+
+ A reference to file object.
+
+ Client is not connected.
+ was not found on the remote host.
+ is .
+ The method was called after the client was disposed.
+
+
+
+ Checks whether file or directory exists.
+
+ The path.
+
+ if directory or file exists; otherwise .
+
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to perform the operation was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Downloads remote file specified by the path into the stream.
+
+ File to download.
+ Stream to write the file into.
+ The download callback.
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to perform the operation was denied by the remote host. -or- A SSH command was denied by the server.
+ was not found on the remote host.///
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+
+
+ Begins an asynchronous file downloading into the stream.
+
+ The path.
+ The output.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to perform the operation was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+
+
+ Begins an asynchronous file downloading into the stream.
+
+ The path.
+ The output.
+ The method to be called when the asynchronous write operation is completed.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to perform the operation was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+
+
+ Begins an asynchronous file downloading into the stream.
+
+ The path.
+ The output.
+ The method to be called when the asynchronous write operation is completed.
+ A user-provided object that distinguishes this particular asynchronous write request from other requests.
+ The download callback.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ The method was called after the client was disposed.
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+
+
+ Ends an asynchronous file downloading into the stream.
+
+ The pending asynchronous SFTP request.
+ The object did not come from the corresponding async method on this type.-or- was called multiple times with the same .
+ Client is not connected.
+ Permission to perform the operation was denied by the remote host. -or- A SSH command was denied by the server.
+ The path was not found on the remote host.
+ A SSH error where is the message from the remote host.
+
+
+
+ Uploads stream into remote file.
+
+ Data input stream.
+ Remote file path.
+ The upload callback.
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to upload the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+
+
+ Uploads stream into remote file.
+
+ Data input stream.
+ Remote file path.
+ if set to then existing file will be overwritten.
+ The upload callback.
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to upload the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+
+
+ Begins an asynchronous uploading the stream into remote file.
+
+ Data input stream.
+ Remote file path.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to list the contents of the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+ If the remote file already exists, it is overwritten and truncated.
+
+
+
+
+
+ Begins an asynchronous uploading the stream into remote file.
+
+ Data input stream.
+ Remote file path.
+ The method to be called when the asynchronous write operation is completed.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to list the contents of the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+ If the remote file already exists, it is overwritten and truncated.
+
+
+
+
+
+ Begins an asynchronous uploading the stream into remote file.
+
+ Data input stream.
+ Remote file path.
+ The method to be called when the asynchronous write operation is completed.
+ A user-provided object that distinguishes this particular asynchronous write request from other requests.
+ The upload callback.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ Client is not connected.
+ Permission to list the contents of the directory was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+ The method was called after the client was disposed.
+
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+ If the remote file already exists, it is overwritten and truncated.
+
+
+
+
+
+ Begins an asynchronous uploading the stream into remote file.
+
+ Data input stream.
+ Remote file path.
+ Specified whether an existing file can be overwritten.
+ The method to be called when the asynchronous write operation is completed.
+ A user-provided object that distinguishes this particular asynchronous write request from other requests.
+ The upload callback.
+
+ An that references the asynchronous operation.
+
+ is .
+ is or contains only whitespace characters.
+ The method was called after the client was disposed.
+
+
+ Method calls made by this method to , may under certain conditions result in exceptions thrown by the stream.
+
+
+ When refers to an existing file, set to to overwrite and truncate that file.
+ If is , the upload will fail and will throw an
+ .
+
+
+
+
+
+ Ends an asynchronous uploading the stream into remote file.
+
+ The pending asynchronous SFTP request.
+ The object did not come from the corresponding async method on this type.-or- was called multiple times with the same .
+ Client is not connected.
+ The directory of the file was not found on the remote host.
+ Permission to upload the file was denied by the remote host. -or- A SSH command was denied by the server.
+ A SSH error where is the message from the remote host.
+
+
+
+ Gets status using statvfs@openssh.com request.
+
+ The path.
+
+ A instance that contains file status information.
+
+ Client is not connected.
+ is .
+ The method was called after the client was disposed.
+
+
+
+ Asynchronously gets status using statvfs@openssh.com request.
+
+ The path.
+ The to observe.
+
+ A that represents the status operation.
+ The task result contains the instance that contains file status information.
+
+ Client is not connected.
+ is .
+ The method was called after the client was disposed.
+
+
+
+ Appends lines to a file, creating the file if it does not already exist.
+
+ The file to append the lines to. The file is created if it does not already exist.
+ The lines to append to the file.
+ is . -or- is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+ The characters are written to the file using UTF-8 encoding without a byte-order mark (BOM).
+
+
+
+
+ Appends lines to a file by using a specified encoding, creating the file if it does not already exist.
+
+ The file to append the lines to. The file is created if it does not already exist.
+ The lines to append to the file.
+ The character encoding to use.
+ is . -or- is . -or- is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Appends the specified string to the file, creating the file if it does not already exist.
+
+ The file to append the specified string to.
+ The string to append to the file.
+ is . -or- is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+ The characters are written to the file using UTF-8 encoding without a Byte-Order Mark (BOM).
+
+
+
+
+ Appends the specified string to the file, creating the file if it does not already exist.
+
+ The file to append the specified string to.
+ The string to append to the file.
+ The character encoding to use.
+ is . -or- is . -or- is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Creates a that appends UTF-8 encoded text to the specified file,
+ creating the file if it does not already exist.
+
+ The path to the file to append to.
+
+ A that appends text to a file using UTF-8 encoding without a
+ Byte-Order Mark (BOM).
+
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Creates a that appends text to a file using the specified
+ encoding, creating the file if it does not already exist.
+
+ The path to the file to append to.
+ The character encoding to use.
+
+ A that appends text to a file using the specified encoding.
+
+ is . -or- is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Creates or overwrites a file in the specified path.
+
+ The path and name of the file to create.
+
+ A that provides read/write access to the file specified in path.
+
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+ If the target file already exists, it is first truncated to zero bytes.
+
+
+
+
+ Creates or overwrites the specified file.
+
+ The path and name of the file to create.
+ The maximum number of bytes buffered for reads and writes to the file.
+
+ A that provides read/write access to the file specified in path.
+
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+ If the target file already exists, it is first truncated to zero bytes.
+
+
+
+
+ Creates or opens a file for writing UTF-8 encoded text.
+
+ The file to be opened for writing.
+
+ A that writes text to a file using UTF-8 encoding without
+ a Byte-Order Mark (BOM).
+
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Creates or opens a file for writing text using the specified encoding.
+
+ The file to be opened for writing.
+ The character encoding to use.
+
+ A that writes to a file using the specified encoding.
+
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Deletes the specified file or directory.
+
+ The name of the file or directory to be deleted. Wildcard characters are not supported.
+ is .
+ Client is not connected.
+ was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Returns the date and time the specified file or directory was last accessed.
+
+ The file or directory for which to obtain access date and time information.
+
+ A structure set to the date and time that the specified file or directory was last accessed.
+ This value is expressed in local time.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last accessed.
+
+ The file or directory for which to obtain access date and time information.
+
+ A structure set to the date and time that the specified file or directory was last accessed.
+ This value is expressed in UTC time.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Returns the date and time the specified file or directory was last written to.
+
+ The file or directory for which to obtain write date and time information.
+
+ A structure set to the date and time that the specified file or directory was last written to.
+ This value is expressed in local time.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Returns the date and time, in coordinated universal time (UTC), that the specified file or directory was last written to.
+
+ The file or directory for which to obtain write date and time information.
+
+ A structure set to the date and time that the specified file or directory was last written to.
+ This value is expressed in UTC time.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a on the specified path with read/write access.
+
+ The file to open.
+ A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.
+
+ An unshared that provides access to the specified file, with the specified mode and read/write access.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a on the specified path, with the specified mode and access.
+
+ The file to open.
+ A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.
+ A value that specifies the operations that can be performed on the file.
+
+ An unshared that provides access to the specified file, with the specified mode and access.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Asynchronously opens a on the specified path, with the specified mode and access.
+
+ The file to open.
+ A value that specifies whether a file is created if one does not exist, and determines whether the contents of existing files are retained or overwritten.
+ A value that specifies the operations that can be performed on the file.
+ The to observe.
+
+ A that represents the asynchronous open operation.
+ The task result contains the that provides access to the specified file, with the specified mode and access.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens an existing file for reading.
+
+ The file to be opened for reading.
+
+ A read-only on the specified path.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens an existing UTF-8 encoded text file for reading.
+
+ The file to be opened for reading.
+
+ A on the specified path.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a file for writing.
+
+ The file to be opened for writing.
+
+ An unshared object on the specified path with access.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+ If the file does not exist, it is created.
+
+
+
+
+ Opens a binary file, reads the contents of the file into a byte array, and closes the file.
+
+ The file to open for reading.
+
+ A byte array containing the contents of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a text file, reads all lines of the file using UTF-8 encoding, and closes the file.
+
+ The file to open for reading.
+
+ A string array containing all lines of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a file, reads all lines of the file with the specified encoding, and closes the file.
+
+ The file to open for reading.
+ The encoding applied to the contents of the file.
+
+ A string array containing all lines of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a text file, reads all lines of the file with the UTF-8 encoding, and closes the file.
+
+ The file to open for reading.
+
+ A string containing all lines of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Opens a file, reads all lines of the file with the specified encoding, and closes the file.
+
+ The file to open for reading.
+ The encoding applied to the contents of the file.
+
+ A string containing all lines of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Reads the lines of a file with the UTF-8 encoding.
+
+ The file to read.
+
+ The lines of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Read the lines of a file that has a specified encoding.
+
+ The file to read.
+ The encoding that is applied to the contents of the file.
+
+ The lines of the file.
+
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Sets the date and time the specified file was last accessed.
+
+ The file for which to set the access date and time information.
+ A containing the value to set for the last access date and time of path. This value is expressed in local time.
+
+
+
+ Sets the date and time, in coordinated universal time (UTC), that the specified file was last accessed.
+
+ The file for which to set the access date and time information.
+ A containing the value to set for the last access date and time of path. This value is expressed in UTC time.
+
+
+
+ Sets the date and time that the specified file was last written to.
+
+ The file for which to set the date and time information.
+ A containing the value to set for the last write date and time of path. This value is expressed in local time.
+
+
+
+ Sets the date and time, in coordinated universal time (UTC), that the specified file was last written to.
+
+ The file for which to set the date and time information.
+ A containing the value to set for the last write date and time of path. This value is expressed in UTC time.
+
+
+
+ Writes the specified byte array to the specified file, and closes the file.
+
+ The file to write to.
+ The bytes to write to the file.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Writes a collection of strings to the file using the UTF-8 encoding, and closes the file.
+
+ The file to write to.
+ The lines to write to the file.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ The characters are written to the file using UTF-8 encoding without a Byte-Order Mark (BOM).
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Write the specified string array to the file using the UTF-8 encoding, and closes the file.
+
+ The file to write to.
+ The string array to write to the file.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ The characters are written to the file using UTF-8 encoding without a Byte-Order Mark (BOM).
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Writes a collection of strings to the file using the specified encoding, and closes the file.
+
+ The file to write to.
+ The lines to write to the file.
+ The character encoding to use.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Writes the specified string array to the file by using the specified encoding, and closes the file.
+
+ The file to write to.
+ The string array to write to the file.
+ An object that represents the character encoding applied to the string array.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Writes the specified string to the file using the UTF-8 encoding, and closes the file.
+
+ The file to write to.
+ The string to write to the file.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ The characters are written to the file using UTF-8 encoding without a Byte-Order Mark (BOM).
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Writes the specified string to the file using the specified encoding, and closes the file.
+
+ The file to write to.
+ The string to write to the file.
+ The encoding to apply to the string.
+ is .
+ Client is not connected.
+ The specified path is invalid, or its directory was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+ If the target file already exists, it is overwritten. It is not first truncated to zero bytes.
+
+
+ If the target file does not exist, it is created.
+
+
+
+
+
+ Gets the of the file on the path.
+
+ The path to the file.
+
+ The of the file on the path.
+
+ is .
+ Client is not connected.
+ was not found on the remote host.
+ The method was called after the client was disposed.
+
+
+
+ Sets the specified of the file on the specified path.
+
+ The path to the file.
+ The desired .
+ is .
+ Client is not connected.
+ The method was called after the client was disposed.
+
+
+
+ Synchronizes the directories.
+
+ The source path.
+ The destination path.
+ The search pattern.
+
+ A list of uploaded files.
+
+ is .
+ is or contains only whitespace.
+ was not found on the remote host.
+ If a problem occurs while copying the file.
+
+
+
+ Begins the synchronize directories.
+
+ The source path.
+ The destination path.
+ The search pattern.
+ The async callback.
+ The state.
+
+ An that represents the asynchronous directory synchronization.
+
+ is .
+ is or contains only whitespace.
+ If a problem occurs while copying the file.
+
+
+
+ Ends the synchronize directories.
+
+ The async result.
+
+ A list of uploaded files.
+
+ The object did not come from the corresponding async method on this type.-or- was called multiple times with the same .
+ The destination path was not found on the remote host.
+
+
+
+ Internals the list directory.
+
+ The path.
+ An that references the asynchronous request.
+ The list callback.
+
+ A list of files in the specfied directory.
+
+ is .
+ Client not connected.
+
+
+
+ Internals the download file.
+
+ The path.
+ The output.
+ An that references the asynchronous request.
+ The download callback.
+ is .
+ is or contains whitespace.
+ Client not connected.
+
+
+
+ Internals the upload file.
+
+ The input.
+ The path.
+ The flags.
+ An that references the asynchronous request.
+ The upload callback.
+ is .
+ is or contains whitespace.
+ Client not connected.
+
+
+
+ Called when client is connected to the server.
+
+
+
+
+ Called when client is disconnecting from the server.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ None.
+
+
+
+
+ SSH_FXF_READ.
+
+
+
+
+ SSH_FXF_WRITE.
+
+
+
+
+ SSH_FXF_APPEND.
+
+
+
+
+ SSH_FXF_CREAT.
+
+
+
+
+ SSH_FXF_TRUNC.
+
+
+
+
+ SSH_FXF_EXCL.
+
+
+
+
+ Represents SFTP file information.
+
+
+
+
+ Gets the file attributes.
+
+
+
+
+ Gets the full path of the file or directory.
+
+
+ The full path of the file or directory.
+
+
+
+
+ Gets the name of the file or directory.
+
+
+ The name of the file or directory.
+
+
+ For directories, this is the name of the last directory in the hierarchy if a hierarchy exists;
+ otherwise, the name of the directory.
+
+
+
+
+ Gets or sets the time the current file or directory was last accessed.
+
+
+ The time that the current file or directory was last accessed.
+
+
+
+
+ Gets or sets the time when the current file or directory was last written to.
+
+
+ The time the current file was last written.
+
+
+
+
+ Gets or sets the time, in coordinated universal time (UTC), the current file or directory was last accessed.
+
+
+ The time that the current file or directory was last accessed.
+
+
+
+
+ Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.
+
+
+ The time the current file was last written.
+
+
+
+
+ Gets the size, in bytes, of the current file.
+
+
+ The size of the current file in bytes.
+
+
+
+
+ Gets or sets file user id.
+
+
+ File user id.
+
+
+
+
+ Gets or sets file group id.
+
+
+ File group id.
+
+
+
+
+ Gets a value indicating whether file represents a socket.
+
+
+ if file represents a socket; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a symbolic link.
+
+
+ if file represents a symbolic link; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a regular file.
+
+
+ if file represents a regular file; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a block device.
+
+
+ if file represents a block device; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a directory.
+
+
+ if file represents a directory; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a character device.
+
+
+ if file represents a character device; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a named pipe.
+
+
+ if file represents a named pipe; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can read from this file.
+
+
+ if owner can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can write into this file.
+
+
+ if owner can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can execute this file.
+
+
+ if owner can execute this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can read from this file.
+
+
+ if group members can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can write into this file.
+
+
+ if group members can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can execute this file.
+
+
+ if group members can execute this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can read from this file.
+
+
+ if others can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can write into this file.
+
+
+ if others can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can execute this file.
+
+
+ if others can execute this file; otherwise, .
+
+
+
+
+ Sets file permissions.
+
+ The mode.
+
+
+
+ Permanently deletes a file on remote machine.
+
+
+
+
+ Moves a specified file to a new location on remote machine, providing the option to specify a new file name.
+
+ The path to move the file to, which can specify a different file name.
+ is .
+
+
+
+ Updates file status on the server.
+
+
+
+
+ Reads a given file.
+
+
+
+
+ Reads a sequence of bytes from the current file and advances the position within the file by the number of bytes read.
+
+
+ The sequence of bytes read from the file, or a zero-length array if the end of the file
+ has been reached.
+
+ The current is disposed.
+ Attempting to read beyond the end of the file.
+
+
+
+ Represents a factory for creating SFTP response messages.
+
+
+
+
+ Creates a SFTP response message for the specified protocol version and message type, and
+ with the specified .
+
+ The protocol version.
+ The message type.
+ The .
+
+ A .
+
+
+
+
+ Represents an SFTP session.
+
+
+
+
+ Gets the SFTP protocol version.
+
+
+ The SFTP protocol version.
+
+
+
+
+ Gets the remote working directory.
+
+
+ The remote working directory.
+
+
+
+
+ Changes the current working directory to the specified path.
+
+ The new working directory.
+
+
+
+ Resolves a given path into an absolute path on the server.
+
+ The path to resolve.
+
+ The absolute path.
+
+
+
+
+ Asynchronously resolves a given path into an absolute path on the server.
+
+ The path to resolve.
+ The token to monitor for cancellation requests.
+
+ A task that represents an asynchronous operation to resolve into
+ an absolute path. The value of its contains the absolute
+ path of the specified path.
+
+
+
+
+ Asynchronously performs a SSH_FXP_FSTAT request.
+
+ The handle.
+ If set to , is returned in case of an error.
+
+ The file attributes.
+
+
+
+
+ Asynchronously performs a SSH_FXP_FSTAT request.
+
+ The handle.
+ The token to monitor for cancellation requests.
+
+ A task the represents the asynchronous SSH_FXP_FSTAT request. The value of its
+ contains the file attributes of the specified handle.
+
+
+
+
+ Performs SSH_FXP_STAT request.
+
+ The path.
+ If set to , is returned in case of an error.
+
+ File attributes.
+
+
+
+
+ Performs SSH_FXP_STAT request.
+
+ The path.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous read.
+
+ An that represents an asynchronous call.
+
+ The file attributes.
+
+ is .
+
+
+
+ Performs SSH_FXP_LSTAT request.
+
+ The path.
+
+ File attributes.
+
+
+
+
+ Performs SSH_FXP_LSTAT request.
+
+ The path.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous SSH_FXP_LSTAT request.
+
+ An that represents an asynchronous call.
+
+ The file attributes.
+
+ is .
+
+
+
+ Performs SSH_FXP_MKDIR request.
+
+ The path.
+
+
+
+ Performs a SSH_FXP_OPEN request.
+
+ The path.
+ The flags.
+ If set to , is returned in case of an error.
+
+ The file handle for the specified path.
+
+
+
+
+ Asynchronously performs a SSH_FXP_OPEN request.
+
+ The path.
+ The flags.
+ The token to monitor for cancellation requests.
+
+ A task the represents the asynchronous SSH_FXP_OPEN request. The value of its
+ contains the file handle of the specified path.
+
+
+
+
+ Performs SSH_FXP_OPEN request.
+
+ The path.
+ The flags.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous read.
+
+ An that represents an asynchronous call.
+
+ A array representing a file handle.
+
+
+ If all available data has been read, the method completes
+ immediately and returns zero bytes.
+
+ is .
+
+
+
+ Performs a SSH_FXP_OPENDIR request.
+
+ The path.
+ If set to , is returned in case of an error.
+
+ A file handle for the specified path.
+
+
+
+
+ Asynchronously performs a SSH_FXP_OPENDIR request.
+
+ The path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_OPENDIR request. The value of its
+ contains the handle of the specified path.
+
+
+
+
+ Performs posix-rename@openssh.com extended request.
+
+ The old path.
+ The new path.
+
+
+
+ Performs SSH_FXP_READ request.
+
+ The handle.
+ The offset.
+ The length.
+ data array; null if EOF.
+
+
+
+ Begins an asynchronous read using a SSH_FXP_READ request.
+
+ The handle to the file to read from.
+ The offset in the file to start reading from.
+ The number of bytes to read.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous read.
+
+ An that represents an asynchronous call.
+
+ A array representing the data read.
+
+
+ If all available data has been read, the method completes
+ immediately and returns zero bytes.
+
+ is .
+
+
+
+ Asynchronously performs a SSH_FXP_READ request.
+
+ The handle to the file to read from.
+ The offset in the file to start reading from.
+ The number of bytes to read.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_READ request. The value of
+ its contains the data read from the file, or an empty
+ array when the end of the file is reached.
+
+
+
+
+ Performs a SSH_FXP_READDIR request.
+
+ The handle of the directory to read.
+
+ A where the key is the name of a file in the directory
+ and the value is the of the file.
+
+
+
+
+ Performs a SSH_FXP_READDIR request.
+
+ The handle of the directory to read.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_READDIR request. The value of its
+ contains a where the
+ key is the name of a file in the directory and the value is the
+ of the file.
+
+
+
+
+ Performs SSH_FXP_REALPATH request.
+
+ The path.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous SSH_FXP_REALPATH request.
+
+ An that represents an asynchronous call.
+
+ The absolute path.
+
+ is .
+
+
+
+ Performs a SSH_FXP_REMOVE request.
+
+ The path.
+
+
+
+ Asynchronously performs a SSH_FXP_REMOVE request.
+
+ The path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_REMOVE request.
+
+
+
+
+ Performs a SSH_FXP_RENAME request.
+
+ The old path.
+ The new path.
+
+
+
+ Asynchronously performs a SSH_FXP_RENAME request.
+
+ The old path.
+ The new path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_RENAME request.
+
+
+
+
+ Performs SSH_FXP_RMDIR request.
+
+ The path.
+
+
+
+ Performs SSH_FXP_SETSTAT request.
+
+ The path.
+ The attributes.
+
+
+
+ Performs a statvfs@openssh.com extended request.
+
+ The path.
+ If set to , is returned in case of an error.
+
+ The file system information for the specified path, or when
+ the request failed and is .
+
+
+
+
+ Asynchronously performs a statvfs@openssh.com extended request.
+
+ The path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the statvfs@openssh.com extended request. The value of its
+ contains the file system information for the specified
+ path.
+
+
+
+
+ Performs SSH_FXP_SYMLINK request.
+
+ The linkpath.
+ The targetpath.
+
+
+
+ Performs SSH_FXP_FSETSTAT request.
+
+ The handle.
+ The attributes.
+
+
+
+ Performs SSH_FXP_WRITE request.
+
+ The handle.
+ The the zero-based offset (in bytes) relative to the beginning of the file that the write must start at.
+ The buffer holding the data to write.
+ the zero-based offset in at which to begin taking bytes to write.
+ The length (in bytes) of the data to write.
+ The wait event handle if needed.
+ The callback to invoke when the write has completed.
+
+
+
+ Asynchronouly performs a SSH_FXP_WRITE request.
+
+ The handle.
+ The the zero-based offset (in bytes) relative to the beginning of the file that the write must start at.
+ The buffer holding the data to write.
+ the zero-based offset in at which to begin taking bytes to write.
+ The length (in bytes) of the data to write.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_WRITE request.
+
+
+
+
+ Performs a SSH_FXP_CLOSE request.
+
+ The handle.
+
+
+
+ Performs a SSH_FXP_CLOSE request.
+
+ The handle.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_CLOSE request.
+
+
+
+
+ Performs SSH_FXP_CLOSE request.
+
+ The handle.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous close.
+
+ An that represents an asynchronous call.
+ is .
+
+
+
+ Calculates the optimal size of the buffer to read data from the channel.
+
+ The buffer size configured on the client.
+
+ The optimal size of the buffer to read data from the channel.
+
+
+
+
+ Calculates the optimal size of the buffer to write data on the channel.
+
+ The buffer size configured on the client.
+ The file handle.
+
+ The optimal size of the buffer to write data on the channel.
+
+
+ Currently, we do not take the remote window size into account.
+
+
+
+
+ Creates an for reading the content of the file represented by a given .
+
+ The handle of the file to read.
+ The SFTP session.
+ The maximum number of bytes to read with each chunk.
+ The maximum number of pending reads.
+ The size of the file or when the size could not be determined.
+
+ An for reading the content of the file represented by the
+ specified .
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The protocol version.
+ The request id.
+ Specifies the path name of the new link to create.
+ Specifies the path of a target object to which the newly created link will refer. In the case of a symbolic link, this path may not exist.
+ if set to the link should be a hard link, or a second directory entry referring to the same file or directory object.
+ The status action.
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Gets the zero-based offset (in bytes) relative to the beginning of the file that the write
+ must start at.
+
+
+ The zero-based offset (in bytes) relative to the beginning of the file that the write must
+ start at.
+
+
+
+
+ Gets the buffer holding the data to write.
+
+
+ The buffer holding the data to write.
+
+
+
+
+ Gets the zero-based offset in at which to begin taking bytes to
+ write.
+
+
+ The zero-based offset in at which to begin taking bytes to write.
+
+
+
+
+ Gets the length (in bytes) of the data to write.
+
+
+ The length (in bytes) of the data to write.
+
+
+
+
+ Encapsulates the results of an asynchronous download operation.
+
+
+
+
+ Gets or sets a value indicating whether to cancel asynchronous download operation.
+
+
+ if download operation to be canceled; otherwise, .
+
+
+ Download operation will be canceled after finishing uploading current buffer.
+
+
+
+
+ Gets the number of downloaded bytes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The async callback.
+ The state.
+
+
+
+ Updates asynchronous operation status information.
+
+ Number of downloaded bytes.
+
+
+
+ Represents SFTP file information.
+
+
+
+
+ Gets the file attributes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The SFTP session.
+ Full path of the directory or file.
+ Attributes of the directory or file.
+ or is .
+
+
+
+ Gets the full path of the file or directory.
+
+
+ The full path of the file or directory.
+
+
+
+
+ Gets the name of the file or directory.
+
+
+ The name of the file or directory.
+
+
+ For directories, this is the name of the last directory in the hierarchy if a hierarchy exists;
+ otherwise, the name of the directory.
+
+
+
+
+ Gets or sets the time the current file or directory was last accessed.
+
+
+ The time that the current file or directory was last accessed.
+
+
+
+
+ Gets or sets the time when the current file or directory was last written to.
+
+
+ The time the current file was last written.
+
+
+
+
+ Gets or sets the time, in coordinated universal time (UTC), the current file or directory was last accessed.
+
+
+ The time that the current file or directory was last accessed.
+
+
+
+
+ Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.
+
+
+ The time the current file was last written.
+
+
+
+
+ Gets the size, in bytes, of the current file.
+
+
+ The size of the current file in bytes.
+
+
+
+
+ Gets or sets file user id.
+
+
+ File user id.
+
+
+
+
+ Gets or sets file group id.
+
+
+ File group id.
+
+
+
+
+ Gets a value indicating whether file represents a socket.
+
+
+ if file represents a socket; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a symbolic link.
+
+
+ if file represents a symbolic link; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a regular file.
+
+
+ if file represents a regular file; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a block device.
+
+
+ if file represents a block device; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a directory.
+
+
+ if file represents a directory; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a character device.
+
+
+ if file represents a character device; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a named pipe.
+
+
+ if file represents a named pipe; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can read from this file.
+
+
+ if owner can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can write into this file.
+
+
+ if owner can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can execute this file.
+
+
+ if owner can execute this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can read from this file.
+
+
+ if group members can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can write into this file.
+
+
+ if group members can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can execute this file.
+
+
+ if group members can execute this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can read from this file.
+
+
+ if others can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can write into this file.
+
+
+ if others can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can execute this file.
+
+
+ if others can execute this file; otherwise, .
+
+
+
+
+ Sets file permissions.
+
+ The mode.
+
+
+
+ Permanently deletes a file on remote machine.
+
+
+
+
+ Moves a specified file to a new location on remote machine, providing the option to specify a new file name.
+
+ The path to move the file to, which can specify a different file name.
+ is .
+
+
+
+ Updates file status on the server.
+
+
+
+
+ Returns a that represents this instance.
+
+
+ A that represents this instance.
+
+
+
+
+ Contains SFTP file attributes.
+
+
+
+
+ Gets or sets the local time the current file or directory was last accessed.
+
+
+ The local time that the current file or directory was last accessed.
+
+
+
+
+ Gets or sets the local time when the current file or directory was last written to.
+
+
+ The local time the current file was last written.
+
+
+
+
+ Gets or sets the UTC time the current file or directory was last accessed.
+
+
+ The UTC time that the current file or directory was last accessed.
+
+
+
+
+ Gets or sets the UTC time when the current file or directory was last written to.
+
+
+ The UTC time the current file was last written.
+
+
+
+
+ Gets or sets the size, in bytes, of the current file.
+
+
+ The size of the current file in bytes.
+
+
+
+
+ Gets or sets file user id.
+
+
+ File user id.
+
+
+
+
+ Gets or sets file group id.
+
+
+ File group id.
+
+
+
+
+ Gets a value indicating whether file represents a socket.
+
+
+ if file represents a socket; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a symbolic link.
+
+
+ if file represents a symbolic link; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a regular file.
+
+
+ if file represents a regular file; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a block device.
+
+
+ if file represents a block device; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a directory.
+
+
+ if file represents a directory; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a character device.
+
+
+ if file represents a character device; otherwise, .
+
+
+
+
+ Gets a value indicating whether file represents a named pipe.
+
+
+ if file represents a named pipe; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can read from this file.
+
+
+ if owner can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can write into this file.
+
+
+ if owner can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the owner can execute this file.
+
+
+ if owner can execute this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can read from this file.
+
+
+ if group members can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can write into this file.
+
+
+ if group members can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the group members can execute this file.
+
+
+ if group members can execute this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can read from this file.
+
+
+ if others can read from this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can write into this file.
+
+
+ if others can write into this file; otherwise, .
+
+
+
+
+ Gets or sets a value indicating whether the others can execute this file.
+
+
+ if others can execute this file; otherwise, .
+
+
+
+
+ Gets the extensions.
+
+
+ The extensions.
+
+
+
+
+ Sets the permissions.
+
+ The mode.
+
+
+
+ Returns a byte array representing the current .
+
+
+ A byte array representing the current .
+
+
+
+
+ Holds the size of the file, when available.
+
+
+
+
+ Holds a value indicating whether EOF has already been signaled by the SSH server.
+
+
+
+
+ Holds a value indicating whether the client has read up to the end of the file.
+
+
+
+
+ Initializes a new instance of the class with the specified handle,
+ and the maximum number of pending reads.
+
+ The file handle.
+ The SFT session.
+ The size of a individual read-ahead chunk.
+ The maximum number of pending reads.
+ The size of the file, if known; otherwise, .
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Returns a value indicating whether the read-ahead loop should be continued.
+
+
+ if the read-ahead loop should be continued; otherwise, .
+
+
+
+
+ Exposes a around a remote SFTP file, supporting both synchronous and asynchronous read and write operations.
+
+
+
+
+
+ Gets a value indicating whether the current stream supports reading.
+
+
+ if the stream supports reading; otherwise, .
+
+
+
+
+ Gets a value indicating whether the current stream supports seeking.
+
+
+ if the stream supports seeking; otherwise, .
+
+
+
+
+ Gets a value indicating whether the current stream supports writing.
+
+
+ if the stream supports writing; otherwise, .
+
+
+
+
+ Gets a value indicating whether timeout properties are usable for .
+
+
+ in all cases.
+
+
+
+
+ Gets the length in bytes of the stream.
+
+ A long value representing the length of the stream in bytes.
+ A class derived from Stream does not support seeking.
+ Methods were called after the stream was closed.
+ IO operation failed.
+
+
+
+ Gets or sets the position within the current stream.
+
+ The current position within the stream.
+ An I/O error occurs.
+ The stream does not support seeking.
+ Methods were called after the stream was closed.
+
+
+
+ Gets the name of the path that was used to construct the current .
+
+
+ The name of the path that was used to construct the current .
+
+
+
+
+ Gets the operating system file handle for the file that the current encapsulates.
+
+
+ The operating system file handle for the file that the current encapsulates.
+
+
+
+
+ Gets or sets the operation timeout.
+
+
+ The timeout.
+
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Clears all buffers for this stream and causes any buffered data to be written to the file.
+
+ An I/O error occurs.
+ Stream is closed.
+
+
+
+ Asynchronously clears all buffers for this stream and causes any buffered data to be written to the file.
+
+ The to observe.
+ A that represents the asynchronous flush operation.
+ An I/O error occurs.
+ Stream is closed.
+
+
+
+ Reads a sequence of bytes from the current stream and advances the position within the stream by the
+ number of bytes read.
+
+ An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source.
+ The zero-based byte offset in at which to begin storing the data read from the current stream.
+ The maximum number of bytes to be read from the current stream.
+
+ The total number of bytes read into the buffer. This can be less than the number of bytes requested
+ if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
+
+ The sum of and is larger than the buffer length.
+ is .
+ or is negative.
+ An I/O error occurs.
+ The stream does not support reading.
+ Methods were called after the stream was closed.
+
+
+ This method attempts to read up to bytes. This either from the buffer, from the
+ server (using one or more SSH_FXP_READ requests) or using a combination of both.
+
+
+ The read loop is interrupted when either bytes are read, the server returns zero
+ bytes (EOF) or less bytes than the read buffer size.
+
+
+ When a server returns less number of bytes than the read buffer size, this may indicate that EOF has
+ been reached. A subsequent (SSH_FXP_READ) server request is necessary to make sure EOF has effectively
+ been reached. Breaking out of the read loop avoids reading from the server twice to determine EOF: once in
+ the read loop, and once upon the next or invocation.
+
+
+
+
+
+ Asynchronously reads a sequence of bytes from the current stream and advances the position within the stream by the
+ number of bytes read.
+
+ An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source.
+ The zero-based byte offset in at which to begin storing the data read from the current stream.
+ The maximum number of bytes to be read from the current stream.
+ The to observe.
+ A that represents the asynchronous read operation.
+
+
+
+ Reads a byte from the stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.
+
+
+ The unsigned byte cast to an , or -1 if at the end of the stream.
+
+ The stream does not support reading.
+ Methods were called after the stream was closed.
+ Read operation failed.
+
+
+
+ Sets the position within the current stream.
+
+ A byte offset relative to the parameter.
+ A value of type indicating the reference point used to obtain the new position.
+
+ The new position within the current stream.
+
+ An I/O error occurs.
+ The stream does not support seeking, such as if the stream is constructed from a pipe or console output.
+ Methods were called after the stream was closed.
+
+
+
+ Sets the length of the current stream.
+
+ The desired length of the current stream in bytes.
+ An I/O error occurs.
+ The stream does not support both writing and seeking.
+ Methods were called after the stream was closed.
+ must be greater than zero.
+
+
+ Buffers are first flushed.
+
+
+ If the specified value is less than the current length of the stream, the stream is truncated and - if the
+ current position is greater than the new length - the current position is moved to the last byte of the stream.
+
+
+ If the given value is greater than the current length of the stream, the stream is expanded and the current
+ position remains the same.
+
+
+
+
+
+ Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
+
+ An array of bytes. This method copies bytes from to the current stream.
+ The zero-based byte offset in at which to begin copying bytes to the current stream.
+ The number of bytes to be written to the current stream.
+ The sum of and is greater than the buffer length.
+ is .
+ or is negative.
+ An I/O error occurs.
+ The stream does not support writing.
+ Methods were called after the stream was closed.
+
+
+
+ Asynchronously writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
+
+ An array of bytes. This method copies bytes from to the current stream.
+ The zero-based byte offset in at which to begin copying bytes to the current stream.
+ The number of bytes to be written to the current stream.
+ The to observe.
+ A that represents the asynchronous write operation.
+ The sum of and is greater than the buffer length.
+ is .
+ or is negative.
+ An I/O error occurs.
+ The stream does not support writing.
+ Methods were called after the stream was closed.
+
+
+
+ Writes a byte to the current position in the stream and advances the position within the stream by one byte.
+
+ The byte to write to the stream.
+ An I/O error occurs.
+ The stream does not support writing, or the stream is already closed.
+ Methods were called after the stream was closed.
+
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Flushes the read data from the buffer.
+
+
+
+
+ Flush any buffered write data to the file.
+
+
+
+
+ Setups the read.
+
+
+
+
+ Setups the write.
+
+
+
+
+ Contains File system information exposed by statvfs@openssh.com request.
+
+
+
+
+ Gets the file system block size.
+
+
+ The file system block size.
+
+
+
+
+ Gets the fundamental file system size of the block.
+
+
+ The fundamental file system block size.
+
+
+
+
+ Gets the total blocks.
+
+
+ The total blocks.
+
+
+
+
+ Gets the free blocks.
+
+
+ The free blocks.
+
+
+
+
+ Gets the available blocks.
+
+
+ The available blocks.
+
+
+
+
+ Gets the total nodes.
+
+
+ The total nodes.
+
+
+
+
+ Gets the free nodes.
+
+
+ The free nodes.
+
+
+
+
+ Gets the available nodes.
+
+
+ The available nodes.
+
+
+
+
+ Gets the sid.
+
+
+ The sid.
+
+
+
+
+ Gets a value indicating whether this instance is read only.
+
+
+ if this instance is read only; otherwise, .
+
+
+
+
+ Gets a value indicating whether [supports set uid].
+
+
+ if [supports set uid]; otherwise, .
+
+
+
+
+ Gets the max name lenght.
+
+
+ The max name lenght.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The bsize.
+ The frsize.
+ The blocks.
+ The bfree.
+ The bavail.
+ The files.
+ The ffree.
+ The favail.
+ The sid.
+ The flag.
+ The namemax.
+
+
+
+ Encapsulates the results of an asynchronous directory list operation.
+
+
+
+
+ Gets the number of files read so far.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The async callback.
+ The state.
+
+
+
+ Updates asynchronous operation status information.
+
+ The files read.
+
+
+
+ Gets the size of the message in bytes.
+
+
+ The size of the messages in bytes.
+
+
+
+
+ Writes the current message to the specified .
+
+ The to write the message to.
+
+
+
+ SSH_FXP_INIT.
+
+
+
+
+ SSH_FXP_VERSION.
+
+
+
+
+ SSH_FXP_OPEN.
+
+
+
+
+ SSH_FXP_CLOSE.
+
+
+
+
+ SSH_FXP_READ.
+
+
+
+
+ SSH_FXP_WRITE.
+
+
+
+
+ SSH_FXP_LSTAT.
+
+
+
+
+ SSH_FXP_FSTAT.
+
+
+
+
+ SSH_FXP_SETSTAT.
+
+
+
+
+ SSH_FXP_FSETSTAT.
+
+
+
+
+ SSH_FXP_OPENDIR.
+
+
+
+
+ SSH_FXP_READDIR.
+
+
+
+
+ SSH_FXP_REMOVE.
+
+
+
+
+ SSH_FXP_MKDIR.
+
+
+
+
+ SSH_FXP_RMDIR.
+
+
+
+
+ SSH_FXP_REALPATH.
+
+
+
+
+ SSH_FXP_STAT.
+
+
+
+
+ SSH_FXP_RENAME.
+
+
+
+
+ SSH_FXP_READLINK.
+
+
+
+
+ SSH_FXP_SYMLINK.
+
+
+
+
+ SSH_FXP_LINK.
+
+
+
+
+ SSH_FXP_BLOCK.
+
+
+
+
+ SSH_FXP_UNBLOCK.
+
+
+
+
+ SSH_FXP_STATUS.
+
+
+
+
+ SSH_FXP_HANDLE.
+
+
+
+
+ SSH_FXP_DATA.
+
+
+
+
+ SSH_FXP_NAME.
+
+
+
+
+ SSH_FXP_ATTRS.
+
+
+
+
+ SSH_FXP_EXTENDED.
+
+
+
+
+ SSH_FXP_EXTENDED_REPLY.
+
+
+
+
+ Represents an SFTP session.
+
+
+
+
+ Gets the remote working directory.
+
+
+ The remote working directory.
+
+
+
+
+ Gets the SFTP protocol version.
+
+
+ The SFTP protocol version.
+
+
+
+
+ Gets the next request id for sftp session.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The SSH session.
+ The operation timeout.
+ The character encoding to use.
+ The factory to create SFTP responses.
+
+
+
+ Changes the current working directory to the specified path.
+
+ The new working directory.
+
+
+
+ Resolves a given path into an absolute path on the server.
+
+ The path to resolve.
+
+ The absolute path.
+
+
+
+
+ Asynchronously resolves a given path into an absolute path on the server.
+
+ The path to resolve.
+ The token to monitor for cancellation requests.
+
+ A task representing the absolute path.
+
+
+
+
+ Creates an for reading the content of the file represented by a given .
+
+ The handle of the file to read.
+ The SFTP session.
+ The maximum number of bytes to read with each chunk.
+ The maximum number of pending reads.
+ The size of the file or when the size could not be determined.
+
+ An for reading the content of the file represented by the
+ specified .
+
+
+
+
+ Performs SSH_FXP_OPEN request.
+
+ The path.
+ The flags.
+ If set to returns instead of throwing an exception.
+ File handle.
+
+
+
+ Asynchronously performs a SSH_FXP_OPEN request.
+
+ The path.
+ The flags.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_OPEN request. The value of its
+ contains the file handle of the specified path.
+
+
+
+
+ Performs SSH_FXP_OPEN request.
+
+ The path.
+ The flags.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous open.
+
+ An that represents an asynchronous call.
+
+ A array representing a file handle.
+
+
+ If all available data has been read, the method completes
+ immediately and returns zero bytes.
+
+ is .
+
+
+
+ Performs SSH_FXP_CLOSE request.
+
+ The handle.
+
+
+
+ Performs a SSH_FXP_CLOSE request.
+
+ The handle.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_CLOSE request.
+
+
+
+
+ Performs SSH_FXP_CLOSE request.
+
+ The handle.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous close.
+
+ An that represents an asynchronous call.
+ is .
+
+
+
+ Begins an asynchronous read using a SSH_FXP_READ request.
+
+ The handle to the file to read from.
+ The offset in the file to start reading from.
+ The number of bytes to read.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous read.
+
+ An that represents an asynchronous call.
+
+ A array representing the data read.
+
+
+ If all available data has been read, the method completes
+ immediately and returns zero bytes.
+
+ is .
+
+
+
+ Performs SSH_FXP_READ request.
+
+ The handle.
+ The offset.
+ The length.
+
+ The data that was read, or an empty array when the end of the file was reached.
+
+
+
+
+ Asynchronously performs a SSH_FXP_READ request.
+
+ The handle to the file to read from.
+ The offset in the file to start reading from.
+ The number of bytes to read.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_READ request. The value of
+ its contains the data read from the file, or an empty
+ array when the end of the file is reached.
+
+
+
+
+ Performs SSH_FXP_WRITE request.
+
+ The handle.
+ The the zero-based offset (in bytes) relative to the beginning of the file that the write must start at.
+ The buffer holding the data to write.
+ the zero-based offset in at which to begin taking bytes to write.
+ The length (in bytes) of the data to write.
+ The wait event handle if needed.
+ The callback to invoke when the write has completed.
+
+
+
+ Asynchronouly performs a SSH_FXP_WRITE request.
+
+ The handle.
+ The the zero-based offset (in bytes) relative to the beginning of the file that the write must start at.
+ The buffer holding the data to write.
+ the zero-based offset in at which to begin taking bytes to write.
+ The length (in bytes) of the data to write.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_WRITE request.
+
+
+
+
+ Performs SSH_FXP_LSTAT request.
+
+ The path.
+
+ File attributes.
+
+
+
+
+ Performs SSH_FXP_LSTAT request.
+
+ The path.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous SSH_FXP_LSTAT request.
+
+ An that represents an asynchronous call.
+
+ The file attributes.
+
+ is .
+
+
+
+ Performs SSH_FXP_FSTAT request.
+
+ The handle.
+ If set to , returns instead of throwing an exception.
+
+ File attributes.
+
+
+
+
+ Asynchronously performs a SSH_FXP_FSTAT request.
+
+ The handle.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_FSTAT request. The value of its
+ contains the file attributes of the specified handle.
+
+
+
+
+ Performs SSH_FXP_SETSTAT request.
+
+ The path.
+ The attributes.
+
+
+
+ Performs SSH_FXP_FSETSTAT request.
+
+ The handle.
+ The attributes.
+
+
+
+ Performs SSH_FXP_OPENDIR request.
+
+ The path.
+ If set to , returns instead of throwing an exception.
+ File handle.
+
+
+
+ Asynchronously performs a SSH_FXP_OPENDIR request.
+
+ The path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_OPENDIR request. The value of its
+ contains the handle of the specified path.
+
+
+
+
+ Performs SSH_FXP_READDIR request.
+
+ The handle of the directory to read.
+
+ A where the key is the name of a file in
+ the directory and the value is the of the file.
+
+
+
+
+ Performs a SSH_FXP_READDIR request.
+
+ The handle of the directory to read.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_READDIR request. The value of its
+ contains a where the
+ key is the name of a file in the directory and the value is the
+ of the file.
+
+
+
+
+ Performs SSH_FXP_REMOVE request.
+
+ The path.
+
+
+
+ Asynchronously performs a SSH_FXP_REMOVE request.
+
+ The path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_REMOVE request.
+
+
+
+
+ Performs SSH_FXP_MKDIR request.
+
+ The path.
+
+
+
+ Performs SSH_FXP_RMDIR request.
+
+ The path.
+
+
+
+ Performs SSH_FXP_REALPATH request.
+
+ The path.
+ if set to returns null instead of throwing an exception.
+
+ The absolute path.
+
+
+
+
+ Performs SSH_FXP_REALPATH request.
+
+ The path.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous SSH_FXP_REALPATH request.
+
+ An that represents an asynchronous call.
+
+ The absolute path.
+
+ is .
+
+
+
+ Performs SSH_FXP_STAT request.
+
+ The path.
+ if set to returns null instead of throwing an exception.
+
+ File attributes.
+
+
+
+
+ Performs SSH_FXP_STAT request.
+
+ The path.
+ The delegate that is executed when completes.
+ An object that contains any additional user-defined data.
+
+ A that represents the asynchronous call.
+
+
+
+
+ Handles the end of an asynchronous stat.
+
+ An that represents an asynchronous call.
+
+ The file attributes.
+
+ is .
+
+
+
+ Performs SSH_FXP_RENAME request.
+
+ The old path.
+ The new path.
+
+
+
+ Asynchronously performs a SSH_FXP_RENAME request.
+
+ The old path.
+ The new path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the asynchronous SSH_FXP_RENAME request.
+
+
+
+
+ Performs SSH_FXP_READLINK request.
+
+ The path.
+ if set to returns instead of throwing an exception.
+
+ An array of where the key is the name of
+ a file and the value is the of the file.
+
+
+
+
+ Performs SSH_FXP_SYMLINK request.
+
+ The linkpath.
+ The targetpath.
+
+
+
+ Performs posix-rename@openssh.com extended request.
+
+ The old path.
+ The new path.
+
+
+
+ Performs statvfs@openssh.com extended request.
+
+ The path.
+ if set to [null on error].
+
+ A for the specified path.
+
+
+
+
+ Asynchronously performs a statvfs@openssh.com extended request.
+
+ The path.
+ The token to monitor for cancellation requests.
+
+ A task that represents the statvfs@openssh.com extended request. The value of its
+ contains the file system information for the specified
+ path.
+
+
+
+
+ Performs fstatvfs@openssh.com extended request.
+
+ The file handle.
+ if set to [null on error].
+
+ A for the specified path.
+
+ This operation is not supported for the current SFTP protocol version.
+
+
+
+ Performs hardlink@openssh.com extended request.
+
+ The old path.
+ The new path.
+
+
+
+ Calculates the optimal size of the buffer to read data from the channel.
+
+ The buffer size configured on the client.
+
+ The optimal size of the buffer to read data from the channel.
+
+
+
+
+ Calculates the optimal size of the buffer to write data on the channel.
+
+ The buffer size configured on the client.
+ The file handle.
+
+ The optimal size of the buffer to write data on the channel.
+
+
+ Currently, we do not take the remote window size into account.
+
+
+
+
+ Encapsulates the results of an asynchronous directory synchronization operation.
+
+
+
+
+ Gets the number of files read so far.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The async callback.
+ The state.
+
+
+
+ Updates asynchronous operation status information.
+
+ The files read.
+
+
+
+ Encapsulates the results of an asynchronous upload operation.
+
+
+
+
+ Gets or sets a value indicating whether to cancel asynchronous upload operation.
+
+
+ if upload operation to be canceled; otherwise, .
+
+
+ Upload operation will be canceled after finishing uploading current buffer.
+
+
+
+
+ Gets the number of uploaded bytes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The async callback.
+ The state.
+
+
+
+ Updates asynchronous operation status information.
+
+ Number of uploaded bytes.
+
+
+
+ SSH_FX_OK.
+
+
+
+
+ SSH_FX_EOF.
+
+
+
+
+ SSH_FX_NO_SUCH_FILE.
+
+
+
+
+ SSH_FX_PERMISSION_DENIED.
+
+
+
+
+ SSH_FX_FAILURE.
+
+
+
+
+ SSH_FX_BAD_MESSAGE.
+
+
+
+
+ SSH_FX_NO_CONNECTION.
+
+
+
+
+ SSH_FX_CONNECTION_LOST.
+
+
+
+
+ SSH_FX_OP_UNSUPPORTED.
+
+
+
+
+ SSH_FX_INVALID_HANDLE.
+
+
+
+
+ SSH_FX_NO_SUCH_PATH.
+
+
+
+
+ SSH_FX_FILE_ALREADY_EXISTS.
+
+
+
+
+ SSH_FX_WRITE_PROTECT.
+
+
+
+
+ SSH_FX_NO_MEDIA.
+
+
+
+
+ SSH_FX_NO_SPACE_ON_FILESYSTEM.
+
+
+
+
+ SSH_FX_QUOTA_EXCEEDED.
+
+
+
+
+ SSH_FX_UNKNOWN_PRINCIPAL.
+
+
+
+
+ SSH_FX_LOCK_CONFLICT.
+
+
+
+
+ SSH_FX_DIR_NOT_EMPTY.
+
+
+
+
+ SSH_FX_NOT_A_DIRECTORY.
+
+
+
+
+ SSH_FX_INVALID_FILENAME.
+
+
+
+
+ SSH_FX_LINK_LOOP.
+
+
+
+
+ SSH_FX_CANNOT_DELETE.
+
+
+
+
+ SSH_FX_INVALID_PARAMETER.
+
+
+
+
+ SSH_FX_FILE_IS_A_DIRECTORY.
+
+
+
+
+ SSH_FX_BYTE_RANGE_LOCK_CONFLICT.
+
+
+
+
+ SSH_FX_BYTE_RANGE_LOCK_REFUSED.
+
+
+
+
+ SSH_FX_DELETE_PENDING.
+
+
+
+
+ SSH_FX_FILE_CORRUPT.
+
+
+
+
+ SSH_FX_OWNER_INVALID.
+
+
+
+
+ SSH_FX_GROUP_INVALID.
+
+
+
+
+ SSH_FX_NO_MATCHING_BYTE_RANGE_LOCK.
+
+
+
+
+ Represents instance of the SSH shell object.
+
+
+
+
+ Gets a value indicating whether this shell is started.
+
+
+ if started is started; otherwise, .
+
+
+
+
+ Occurs when shell is starting.
+
+
+
+
+ Occurs when shell is started.
+
+
+
+
+ Occurs when shell is stopping.
+
+
+
+
+ Occurs when shell is stopped.
+
+
+
+
+ Occurs when an error occurred.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session.
+ The input.
+ The output.
+ The extended output.
+ Name of the terminal.
+ The columns.
+ The rows.
+ The width.
+ The height.
+ The terminal modes.
+ Size of the buffer for output stream.
+
+
+
+ Starts this shell.
+
+ Shell is started.
+
+
+
+ Stops this shell.
+
+ Shell is not started.
+
+
+
+ Unsubscribes the current from session events.
+
+ The session.
+
+ Does nothing when is .
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
+ Contains operation for working with SSH Shell.
+
+
+
+
+ Occurs when data was received.
+
+
+
+
+ Occurs when an error occurred.
+
+
+
+
+ Gets a value indicating whether data is available on the to be read.
+
+
+ if data is available to be read; otherwise, .
+
+
+
+
+ Gets the number of bytes that will be written to the internal buffer.
+
+
+ The number of bytes that will be written to the internal buffer.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The SSH session.
+ The TERM environment variable.
+ The terminal width in columns.
+ The terminal width in rows.
+ The terminal width in pixels.
+ The terminal height in pixels.
+ The terminal mode values.
+ The size of the buffer.
+ The channel could not be opened.
+ The pseudo-terminal request was not accepted by the server.
+ The request to start a shell was not accepted by the server.
+
+
+
+ Gets a value indicating whether the current stream supports reading.
+
+
+ if the stream supports reading; otherwise, .
+
+
+
+
+ Gets a value indicating whether the current stream supports seeking.
+
+
+ if the stream supports seeking; otherwise, .
+
+
+
+
+ Gets a value indicating whether the current stream supports writing.
+
+
+ if the stream supports writing; otherwise, .
+
+
+
+
+ Clears all buffers for this stream and causes any buffered data to be written to the underlying device.
+
+ An I/O error occurs.
+ Methods were called after the stream was closed.
+
+
+
+ Gets the length in bytes of the stream.
+
+ A long value representing the length of the stream in bytes.
+ A class derived from Stream does not support seeking.
+ Methods were called after the stream was closed.
+
+
+
+ Gets or sets the position within the current stream.
+
+
+ The current position within the stream.
+
+ An I/O error occurs.
+ The stream does not support seeking.
+ Methods were called after the stream was closed.
+
+
+
+ This method is not supported.
+
+ A byte offset relative to the parameter.
+ A value of type indicating the reference point used to obtain the new position.
+
+ The new position within the current stream.
+
+ An I/O error occurs.
+ The stream does not support seeking, such as if the stream is constructed from a pipe or console output.
+ Methods were called after the stream was closed.
+
+
+
+ This method is not supported.
+
+ The desired length of the current stream in bytes.
+ An I/O error occurs.
+ The stream does not support both writing and seeking, such as if the stream is constructed from a pipe or console output.
+ Methods were called after the stream was closed.
+
+
+
+ Expects the specified expression and performs action when one is found.
+
+ The expected expressions and actions to perform.
+
+
+
+ Expects the specified expression and performs action when one is found.
+
+ Time to wait for input.
+ The expected expressions and actions to perform, if the specified time elapsed and expected condition have not met, that method will exit without executing any action.
+
+
+
+ Expects the expression specified by text.
+
+ The text to expect.
+
+ Text available in the shell that ends with expected text.
+
+
+
+
+ Expects the expression specified by text.
+
+ The text to expect.
+ Time to wait for input.
+
+ The text available in the shell that ends with expected text, or if the specified time has elapsed.
+
+
+
+
+ Expects the expression specified by regular expression.
+
+ The regular expression to expect.
+
+ The text available in the shell that contains all the text that ends with expected expression.
+
+
+
+
+ Expects the expression specified by regular expression.
+
+ The regular expression to expect.
+ Time to wait for input.
+
+ The text available in the shell that contains all the text that ends with expected expression,
+ or if the specified time has elapsed.
+
+
+
+
+ Begins the expect.
+
+ The expect actions.
+
+ An that references the asynchronous operation.
+
+
+
+
+ Begins the expect.
+
+ The callback.
+ The expect actions.
+
+ An that references the asynchronous operation.
+
+
+
+
+ Begins the expect.
+
+ The callback.
+ The state.
+ The expect actions.
+
+ An that references the asynchronous operation.
+
+
+
+
+ Begins the expect.
+
+ The timeout.
+ The callback.
+ The state.
+ The expect actions.
+
+ An that references the asynchronous operation.
+
+
+
+
+ Ends the execute.
+
+ The async result.
+
+ Text available in the shell that ends with expected text.
+
+ Either the IAsyncResult object did not come from the corresponding async method on this type, or EndExecute was called multiple times with the same IAsyncResult.
+
+
+
+ Reads the line from the shell. If line is not available it will block the execution and will wait for new line.
+
+
+ The line read from the shell.
+
+
+
+
+ Reads a line from the shell. If line is not available it will block the execution and will wait for new line.
+
+ Time to wait for input.
+
+ The line read from the shell, or when no input is received for the specified timeout.
+
+
+
+
+ Reads text available in the shell.
+
+
+ The text available in the shell.
+
+
+
+
+ Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.
+
+ An array of bytes. When this method returns, the buffer contains the specified byte array with the values between and ( + - 1) replaced by the bytes read from the current source.
+ The zero-based byte offset in at which to begin storing the data read from the current stream.
+ The maximum number of bytes to be read from the current stream.
+
+ The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.
+
+ The sum of and is larger than the buffer length.
+ is .
+ or is negative.
+ An I/O error occurs.
+ The stream does not support reading.
+ Methods were called after the stream was closed.
+
+
+
+ Writes the specified text to the shell.
+
+ The text to be written to the shell.
+
+ If is , nothing is written.
+
+
+
+
+ Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
+
+ An array of bytes. This method copies bytes from to the current stream.
+ The zero-based byte offset in at which to begin copying bytes to the current stream.
+ The number of bytes to be written to the current stream.
+ The sum of and is greater than the buffer length.
+ is .
+ or is negative.
+ An I/O error occurs.
+ The stream does not support writing.
+ Methods were called after the stream was closed.
+
+
+
+ Writes the line to the shell.
+
+ The line to be written to the shell.
+
+ If is , only the line terminator is written.
+
+
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Unsubscribes the current from session events.
+
+ The session.
+
+ Does nothing when is .
+
+
+
+
+ Provides client connection to SSH server.
+
+
+
+
+ Holds the list of forwarded ports.
+
+
+
+
+ Holds a value indicating whether the current instance is disposed.
+
+
+ if the current instance is disposed; otherwise, .
+
+
+
+
+ Gets the list of forwarded ports.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ is .
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Connection port.
+ Authentication username.
+ Authentication password.
+ is .
+ is invalid, or is or contains only whitespace characters.
+ is not within and .
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Authentication username.
+ Authentication password.
+ is .
+ is invalid, or is or contains only whitespace characters.
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Connection port.
+ Authentication username.
+ Authentication private key file(s) .
+ is .
+ is invalid, -or- is or contains only whitespace characters.
+ is not within and .
+
+
+
+ Initializes a new instance of the class.
+
+ Connection host.
+ Authentication username.
+ Authentication private key file(s) .
+ is .
+ is invalid, -or- is or contains only whitespace characters.
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ Specified whether this instance owns the connection info.
+ is .
+
+ If is , then the
+ connection info will be disposed when this instance is disposed.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection info.
+ Specified whether this instance owns the connection info.
+ The factory to use for creating new services.
+ is .
+ is .
+
+ If is , then the
+ connection info will be disposed when this instance is disposed.
+
+
+
+
+ Called when client is disconnecting from the server.
+
+
+
+
+ Adds the forwarded port.
+
+ The port.
+ Forwarded port is already added to a different client.
+ is .
+ Client is not connected.
+
+
+
+ Stops and removes the forwarded port from the list.
+
+ Forwarded port.
+ is .
+
+
+
+ Creates the command to be executed.
+
+ The command text.
+ object.
+ Client is not connected.
+
+
+
+ Creates the command to be executed with specified encoding.
+
+ The command text.
+ The encoding to use for results.
+ object which uses specified encoding.
+ This method will change current default encoding.
+ Client is not connected.
+ or is .
+
+
+
+ Creates and executes the command.
+
+ The command text.
+ Returns an instance of with execution results.
+ This method internally uses asynchronous calls.
+ CommandText property is empty.
+ Invalid Operation - An existing channel was used to execute this command.
+ Asynchronous operation is already in progress.
+ Client is not connected.
+ is .
+
+
+
+ Creates the shell.
+
+ The input.
+ The output.
+ The extended output.
+ Name of the terminal.
+ The columns.
+ The rows.
+ The width.
+ The height.
+ The terminal mode.
+ Size of the internal read buffer.
+
+ Returns a representation of a object.
+
+ Client is not connected.
+
+
+
+ Creates the shell.
+
+ The input.
+ The output.
+ The extended output.
+ Name of the terminal.
+ The columns.
+ The rows.
+ The width.
+ The height.
+ The terminal mode.
+
+ Returns a representation of a object.
+
+ Client is not connected.
+
+
+
+ Creates the shell.
+
+ The input.
+ The output.
+ The extended output.
+
+ Returns a representation of a object.
+
+ Client is not connected.
+
+
+
+ Creates the shell.
+
+ The encoding to use to send the input.
+ The input.
+ The output.
+ The extended output.
+ Name of the terminal.
+ The columns.
+ The rows.
+ The width.
+ The height.
+ The terminal mode.
+ Size of the internal read buffer.
+
+ Returns a representation of a object.
+
+ Client is not connected.
+
+
+
+ Creates the shell.
+
+ The encoding.
+ The input.
+ The output.
+ The extended output.
+ Name of the terminal.
+ The columns.
+ The rows.
+ The width.
+ The height.
+ The terminal modes.
+
+ Returns a representation of a object.
+
+ Client is not connected.
+
+
+
+ Creates the shell.
+
+ The encoding.
+ The input.
+ The output.
+ The extended output.
+
+ Returns a representation of a object.
+
+ Client is not connected.
+
+
+
+ Creates the shell stream.
+
+ The TERM environment variable.
+ The terminal width in columns.
+ The terminal width in rows.
+ The terminal width in pixels.
+ The terminal height in pixels.
+ The size of the buffer.
+
+ The created instance.
+
+ Client is not connected.
+
+
+ The TERM environment variable contains an identifier for the text window's capabilities.
+ You can get a detailed list of these cababilities by using the ‘infocmp’ command.
+
+
+ The column/row dimensions override the pixel dimensions(when nonzero). Pixel dimensions refer
+ to the drawable area of the window.
+
+
+
+
+
+ Creates the shell stream.
+
+ The TERM environment variable.
+ The terminal width in columns.
+ The terminal width in rows.
+ The terminal width in pixels.
+ The terminal height in pixels.
+ The size of the buffer.
+ The terminal mode values.
+
+ The created instance.
+
+ Client is not connected.
+
+
+ The TERM environment variable contains an identifier for the text window's capabilities.
+ You can get a detailed list of these cababilities by using the ‘infocmp’ command.
+
+
+ The column/row dimensions override the pixel dimensions(when non-zero). Pixel dimensions refer
+ to the drawable area of the window.
+
+
+
+
+
+ Stops forwarded ports.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Represents SSH command that can be executed.
+
+
+
+
+ Gets the command text.
+
+
+
+
+ Gets or sets the command timeout.
+
+
+ The command timeout.
+
+
+
+
+ Gets the command exit status.
+
+
+
+
+ Gets the output stream.
+
+
+
+
+ Gets the extended output stream.
+
+
+
+
+ Gets the command execution result.
+
+
+
+
+ Gets the command execution error.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session.
+ The command text.
+ The encoding to use for the results.
+ Either , is .
+
+
+
+ Begins an asynchronous command execution.
+
+
+ An that represents the asynchronous command execution, which could still be pending.
+
+ Asynchronous operation is already in progress.
+ Invalid operation.
+ CommandText property is empty.
+ Client is not connected.
+ Operation has timed out.
+
+
+
+ Begins an asynchronous command execution.
+
+ An optional asynchronous callback, to be called when the command execution is complete.
+
+ An that represents the asynchronous command execution, which could still be pending.
+
+ Asynchronous operation is already in progress.
+ Invalid operation.
+ CommandText property is empty.
+ Client is not connected.
+ Operation has timed out.
+
+
+
+ Begins an asynchronous command execution.
+
+ An optional asynchronous callback, to be called when the command execution is complete.
+ A user-provided object that distinguishes this particular asynchronous read request from other requests.
+
+ An that represents the asynchronous command execution, which could still be pending.
+
+ Asynchronous operation is already in progress.
+ Invalid operation.
+ CommandText property is empty.
+ Client is not connected.
+ Operation has timed out.
+
+
+
+ Begins an asynchronous command execution.
+
+ The command text.
+ An optional asynchronous callback, to be called when the command execution is complete.
+ A user-provided object that distinguishes this particular asynchronous read request from other requests.
+
+ An that represents the asynchronous command execution, which could still be pending.
+
+ Client is not connected.
+ Operation has timed out.
+
+
+
+ Waits for the pending asynchronous command execution to complete.
+
+ The reference to the pending asynchronous request to finish.
+ Command execution result.
+ Either the IAsyncResult object did not come from the corresponding async method on this type, or EndExecute was called multiple times with the same IAsyncResult.
+ is .
+
+
+
+ Cancels command execution in asynchronous scenarios.
+
+
+
+
+ Executes command specified by property.
+
+
+ Command execution result.
+
+ Client is not connected.
+ Operation has timed out.
+
+
+
+ Executes the specified command text.
+
+ The command text.
+
+ The result of the command execution.
+
+ Client is not connected.
+ Operation has timed out.
+
+
+ Command '{0}' has timed out.
+ The actual command will be included in the exception message.
+
+
+
+ Unsubscribes the current from channel events, and disposes
+ the .
+
+ The channel.
+
+ Does nothing when is .
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+ Releases unmanaged resources and performs other cleanup operations before the
+ is reclaimed by garbage collection.
+
+
+
+
+ Defines the highest message number that is currently supported.
+
+
+
+
+ Defines the total number of supported messages.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Disables and deactivate all messages.
+
+
+
+
+ Base class for SSH subsystem implementations.
+
+
+
+
+ Holds the number of system wait handles that are returned as the leading entries in the array returned
+ in .
+
+
+
+
+ Gets or set the number of seconds to wait for an operation to complete.
+
+
+ The number of seconds to wait for an operation to complete, or -1 to wait indefinitely.
+
+
+
+
+ Occurs when an error occurred.
+
+
+
+
+ Occurs when the server has disconnected from the session.
+
+
+
+
+ Gets the channel associated with this session.
+
+
+ The channel associated with this session.
+
+
+
+
+ Gets a value indicating whether this session is open.
+
+
+ if this session is open; otherwise, .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session.
+ Name of the subsystem.
+ The number of milliseconds to wait for a given operation to complete, or -1 to wait indefinitely.
+ or is .
+
+
+
+ Connects the subsystem using a new SSH channel session.
+
+ The session is already connected.
+ The method was called after the session was disposed.
+ The channel session could not be opened, or the subsystem could not be executed.
+
+
+
+ Disconnects the subsystem channel.
+
+
+
+
+ Sends data to the subsystem.
+
+ The data to be sent.
+
+
+
+ Called when channel is open.
+
+
+
+
+ Called when data is received.
+
+ The data.
+
+
+
+ Raises the error.
+
+ The error.
+
+
+
+ Waits a specified time for a given to get signaled.
+
+ The handle to wait for.
+ To number of milliseconds to wait for to get signaled, or -1 to wait indefinitely.
+ The connection was closed by the server.
+ The channel was closed.
+ The handle did not get signaled within the specified timeout.
+
+
+
+ Blocks the current thread until the specified gets signaled, using a
+ 32-bit signed integer to specify the time interval in milliseconds.
+
+ The handle to wait for.
+ To number of milliseconds to wait for to get signaled, or -1 to wait indefinitely.
+
+ if received a signal within the specified timeout;
+ otherwise, .
+
+ The connection was closed by the server.
+ The channel was closed.
+
+ The blocking wait is also interrupted when either the established channel is closed, the current
+ session is disconnected or an unexpected occurred while processing a channel
+ or session event.
+
+
+
+
+ Blocks the current thread until the specified gets signaled, using a
+ 32-bit signed integer to specify the time interval in milliseconds.
+
+ The first handle to wait for.
+ The second handle to wait for.
+ To number of milliseconds to wait for a to get signaled, or -1 to wait indefinitely.
+
+ 0 if received a signal within the specified timeout, and 1
+ if received a signal within the specified timeout.
+
+ The connection was closed by the server.
+ The channel was closed.
+ The handle did not get signaled within the specified timeout.
+
+
+ The blocking wait is also interrupted when either the established channel is closed, the current
+ session is disconnected or an unexpected occurred while processing a channel
+ or session event.
+
+
+ When both and are signaled during the call,
+ then 0 is returned.
+
+
+
+
+
+ Waits for any of the elements in the specified array to receive a signal, using a 32-bit signed
+ integer to specify the time interval.
+
+ A array - constructed using - containing the objects to wait for.
+ To number of milliseconds to wait for a to get signaled, or -1 to wait indefinitely.
+
+ The array index of the first non-system object that satisfied the wait.
+
+ The connection was closed by the server.
+ The channel was closed.
+ No object satified the wait and a time interval equivalent to has passed.
+
+ For the return value, the index of the first non-system object is considered to be zero.
+
+
+
+
+ Creates a array that is composed of system objects and the specified
+ elements.
+
+ The first to wait for.
+ The second to wait for.
+
+ A array that is composed of system objects and the specified elements.
+
+
+
+
+ Creates a array that is composed of system objects and the specified
+ elements.
+
+ A array containing the objects to wait for.
+
+ A array that is composed of system objects and the specified elements.
+
+
+
+
+ Unsubscribes the current from session events.
+
+ The session.
+
+ Does nothing when is .
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Releases unmanaged and - optionally - managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+ Finalizes an instance of the class.
+
+
+
+
diff --git a/Posh-SSH/Assembly/System.Runtime.CompilerServices.Unsafe.dll b/Posh-SSH/Assembly/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3156239266db9cceede249731f00c3822e479a1f
GIT binary patch
literal 23600
zcmeHv2V4|OllW{P=ZwT92MM!eL~@p>BoUCf1PP0~OEi!a5k*juAO=uSR0P3=hrCdY9sDx+=IfUXLNeJ|hiXzhp0VDz?CW;Ui
zMX+#kAw-gcNNOA$tg`g1oh>2A9)p8qs!P0POY4EKQfwGD2;v76<{9c&A_xiKH32UI
z2q3`D)EmUm`XeEf3|>HQDuzJ2Og2IgH~RZMq@#chc}{?Q?U0BGco~rh{gHqm*a*b^
zAc%dI_8$oeb5%!EF$3IYUV1eeDV_#!JTCy?8`@S-@A(e_l&(ghQUVboQa2NNCsV&W+Uom_4<^PJ*Ysj2(R{q8_?$lS*@hOl$J*94`m6MEG01T|8dRJbH^D!e
z))kCB%Nl#@g`;3vJdaM%P2aNW+vhh9*sKg(PxZw&vH2W(xzuE@O4Mc>#jZ02=8pSc
zEIrz@`0f2Ga*lpBL;JrtxUZ8_h&K>1T|nH;WI1+`Yb76yftcu3!>-0akf<_*&{$__
zUwJWf@}JPLvuX!naVcmfd@vRQ8i_tw9LQvb4D$Fr9f*<6kCsSJ0ikJr{|$qVM$
zPRF3?h_(qZ;y`~O_6D?u2g}N+jP%c}>SNI|f5dTfV-Uz5l|tu=GS#u