diff options
author | Oren Novotny <oren@novotny.org> | 2014-08-27 11:03:47 -0400 |
---|---|---|
committer | Oren Novotny <oren@novotny.org> | 2014-08-27 11:03:47 -0400 |
commit | fd055e94dd68802ad5c317238a15ac787720fbf1 (patch) | |
tree | 78b170b78f85510739a60dfb0017a00b2196b81d /crypto | |
parent | Fix remaining compile errors (diff) | |
download | BouncyCastle.NET-ed25519-fd055e94dd68802ad5c317238a15ac787720fbf1.tar.xz |
Add unit test files
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/doc/crypto.xml | 3493 | ||||
-rw-r--r-- | crypto/test/src/asn1/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/cms/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/io/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/crypto/test/AllTests.cs | 7 | ||||
-rw-r--r-- | crypto/test/src/math/ec/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/math/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/ocsp/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/openpgp/examples/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/openssl/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/security/test/SecureRandomTest.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/tsp/test/AllTests.cs | 2 | ||||
-rw-r--r-- | crypto/test/src/util/io/pem/test/AllTests.cs | 2 |
13 files changed, 2999 insertions, 523 deletions
diff --git a/crypto/doc/crypto.xml b/crypto/doc/crypto.xml index f1cf2f391..03a699341 100644 --- a/crypto/doc/crypto.xml +++ b/crypto/doc/crypto.xml @@ -1045,6 +1045,11 @@ unauthAttrs [2] IMPLICIT UnauthAttributes OPTIONAL } </pre> </member> + <member name="F:Org.BouncyCastle.Asn1.Cms.CmsObjectIdentifiers.id_ri"> + The other Revocation Info arc + id-ri OBJECT IDENTIFIER ::= { iso(1) identified-organization(3) + dod(6) internet(1) security(5) mechanisms(5) pkix(7) ri(16) } + </member> <member name="T:Org.BouncyCastle.Asn1.Cms.CompressedData"> RFC 3274 - CMS Compressed Data. <pre> @@ -1439,6 +1444,29 @@ oriValue ANY DEFINED BY oriType } </pre> </member> + <member name="M:Org.BouncyCastle.Asn1.Cms.OtherRevocationInfoFormat.GetInstance(Org.BouncyCastle.Asn1.Asn1TaggedObject,System.Boolean)"> + return a OtherRevocationInfoFormat object from a tagged object. + + @param obj the tagged object holding the object we want. + @param explicit true if the object is meant to be explicitly + tagged false otherwise. + @exception IllegalArgumentException if the object held by the + tagged object cannot be converted. + </member> + <member name="M:Org.BouncyCastle.Asn1.Cms.OtherRevocationInfoFormat.GetInstance(System.Object)"> + return a OtherRevocationInfoFormat object from the given object. + + @param obj the object we want converted. + @exception IllegalArgumentException if the object cannot be converted. + </member> + <member name="M:Org.BouncyCastle.Asn1.Cms.OtherRevocationInfoFormat.ToAsn1Object"> + Produce an object suitable for an ASN1OutputStream. + <pre> + OtherRevocationInfoFormat ::= SEQUENCE { + otherRevInfoFormat OBJECT IDENTIFIER, + otherRevInfo ANY DEFINED BY otherRevInfoFormat } + </pre> + </member> <member name="M:Org.BouncyCastle.Asn1.Cms.PasswordRecipientInfo.GetInstance(Org.BouncyCastle.Asn1.Asn1TaggedObject,System.Boolean)"> return a PasswordRecipientInfo object from a tagged object. @@ -1544,6 +1572,14 @@ SubjectKeyIdentifier ::= OCTET STRING </pre> </member> + <member name="M:Org.BouncyCastle.Asn1.Cms.ScvpReqRes.ToAsn1Object"> + <pre> + ScvpReqRes ::= SEQUENCE { + request [0] EXPLICIT ContentInfo OPTIONAL, + response ContentInfo } + </pre> + @return the ASN.1 primitive representation. + </member> <member name="T:Org.BouncyCastle.Asn1.Cms.SignedData"> a signed data object. </member> @@ -2304,13 +2340,6 @@ <member name="M:Org.BouncyCastle.Asn1.DerUniversalString.#ctor(System.Byte[])"> basic constructor - byte encoded string. </member> - <member name="T:Org.BouncyCastle.Asn1.DerUnknownTag"> - We insert one of these when we find a tag we don't recognise. - </member> - <member name="M:Org.BouncyCastle.Asn1.DerUnknownTag.#ctor(System.Int32,System.Byte[])"> - @param tag the tag value. - @param data the contents octets. - </member> <member name="T:Org.BouncyCastle.Asn1.DerUtcTime"> UTC time object. </member> @@ -3285,7 +3314,7 @@ namingAuthorityUrl, or by a combination of them. For example, the text string can contain the name of the authority, the country and the name of the title register. The URL-option refers to a web page which contains lists with - �officially� registered professions (text and possibly OID) as well as + officially registered professions (text and possibly OID) as well as further information on these professions. Object identifiers for the component namingAuthorityId are grouped under the OID-branch id-isis-at-namingAuthorities and must be applied for.</li> @@ -3910,7 +3939,7 @@ </pre> </member> <member name="T:Org.BouncyCastle.Asn1.Nist.NistNamedCurves"> - Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-2 + Utility class for fetching curves using their NIST names as published in FIPS-PUB 186-3 </member> <member name="M:Org.BouncyCastle.Asn1.Nist.NistNamedCurves.GetByOid(Org.BouncyCastle.Asn1.DerObjectIdentifier)"> return the X9ECParameters object for the named curve represented by @@ -4797,6 +4826,17 @@ <member name="P:Org.BouncyCastle.Asn1.X509.CertificatePair.Reverse"> @return Returns the reverse. </member> + <member name="M:Org.BouncyCastle.Asn1.X509.CertificatePolicies.#ctor(Org.BouncyCastle.Asn1.X509.PolicyInformation)"> + Construct a CertificatePolicies object containing one PolicyInformation. + + @param name the name to be contained. + </member> + <member name="M:Org.BouncyCastle.Asn1.X509.CertificatePolicies.ToAsn1Object"> + Produce an object suitable for an ASN1OutputStream. + <pre> + CertificatePolicies ::= SEQUENCE SIZE {1..MAX} OF PolicyInformation + </pre> + </member> <member name="T:Org.BouncyCastle.Asn1.X509.CertPolicyID"> CertPolicyId, used in the CertificatePolicies and PolicyMappings X509V3 Extensions. @@ -5283,21 +5323,20 @@ <member name="M:Org.BouncyCastle.Asn1.X509.NoticeReference.#ctor(System.String,System.Collections.IList)"> Creates a new <code>NoticeReference</code> instance. - @param orgName a <code>string</code> value - @param numbers a <code>ArrayList</code> value + @param organization a <code>String</code> value + @param numbers a <code>Vector</code> value </member> - <member name="M:Org.BouncyCastle.Asn1.X509.NoticeReference.#ctor(System.String,Org.BouncyCastle.Asn1.Asn1Sequence)"> + <member name="M:Org.BouncyCastle.Asn1.X509.NoticeReference.#ctor(System.String,Org.BouncyCastle.Asn1.Asn1EncodableVector)"> Creates a new <code>NoticeReference</code> instance. - @param orgName a <code>string</code> value - @param numbers an <code>Asn1Sequence</code> value + @param organization a <code>String</code> value + @param noticeNumbers an <code>ASN1EncodableVector</code> value </member> - <member name="M:Org.BouncyCastle.Asn1.X509.NoticeReference.#ctor(System.Int32,System.String,Org.BouncyCastle.Asn1.Asn1Sequence)"> + <member name="M:Org.BouncyCastle.Asn1.X509.NoticeReference.#ctor(Org.BouncyCastle.Asn1.X509.DisplayText,Org.BouncyCastle.Asn1.Asn1EncodableVector)"> Creates a new <code>NoticeReference</code> instance. - @param displayTextType an <code>int</code> value - @param orgName a <code>string</code> value - @param numbers an <code>Asn1Sequence</code> value + @param organization displayText + @param noticeNumbers an <code>ASN1EncodableVector</code> value </member> <member name="M:Org.BouncyCastle.Asn1.X509.NoticeReference.#ctor(Org.BouncyCastle.Asn1.Asn1Sequence)"> Creates a new <code>NoticeReference</code> instance. @@ -6784,6 +6823,34 @@ lightweight Java environment don't support classes like StringTokenizer. </member> + <member name="T:Org.BouncyCastle.Asn1.X9.ECNamedCurveTable"> + A general class that reads all X9.62 style EC curve tables. + </member> + <member name="M:Org.BouncyCastle.Asn1.X9.ECNamedCurveTable.GetByName(System.String)"> + return a X9ECParameters object representing the passed in named + curve. The routine returns null if the curve is not present. + + @param name the name of the curve requested + @return an X9ECParameters object or null if the curve is not available. + </member> + <member name="M:Org.BouncyCastle.Asn1.X9.ECNamedCurveTable.GetOid(System.String)"> + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + </member> + <member name="M:Org.BouncyCastle.Asn1.X9.ECNamedCurveTable.GetByOid(Org.BouncyCastle.Asn1.DerObjectIdentifier)"> + return a X9ECParameters object representing the passed in named + curve. + + @param oid the object id of the curve requested + @return an X9ECParameters object or null if the curve is not available. + </member> + <member name="P:Org.BouncyCastle.Asn1.X9.ECNamedCurveTable.Names"> + return an enumeration of the names of the available curves. + + @return an enumeration of the names of the available curves. + </member> <member name="T:Org.BouncyCastle.Asn1.X9.KeySpecificInfo"> ASN.1 def for Diffie-Hellman key exchange KeySpecificInfo structure. See RFC 2631, or X9.42, for further details. @@ -6914,6 +6981,15 @@ <code>F<sub>2</sub></code>. @param primeP The prime <code>p</code> defining the prime field. </member> + <member name="M:Org.BouncyCastle.Asn1.X9.X9FieldID.#ctor(System.Int32,System.Int32)"> + Constructor for elliptic curves over binary fields + <code>F<sub>2<sup>m</sup></sub></code>. + @param m The exponent <code>m</code> of + <code>F<sub>2<sup>m</sup></sub></code>. + @param k1 The integer <code>k1</code> where <code>x<sup>m</sup> + + x<sup>k1</sup> + 1</code> + represents the reduction polynomial <code>f(z)</code>. + </member> <member name="M:Org.BouncyCastle.Asn1.X9.X9FieldID.#ctor(System.Int32,System.Int32,System.Int32,System.Int32)"> Constructor for elliptic curves over binary fields <code>F<sub>2<sup>m</sup></sub></code>. @@ -6938,9 +7014,6 @@ } </pre> </member> - <member name="F:Org.BouncyCastle.Asn1.X9.X9ObjectIdentifiers.AnsiX942"> - X9.42 - </member> <member name="F:Org.BouncyCastle.Asn1.X9.X9ObjectIdentifiers.IdDsaWithSha1"> id-dsa-with-sha1 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } @@ -6948,6 +7021,9 @@ <member name="F:Org.BouncyCastle.Asn1.X9.X9ObjectIdentifiers.X9x63Scheme"> X9.63 </member> + <member name="F:Org.BouncyCastle.Asn1.X9.X9ObjectIdentifiers.ansi_x9_42"> + X9.42 + </member> <member name="T:Org.BouncyCastle.Bcpg.ArmoredInputStream"> reader for Base64 armored objects - read the headers and then start returning bytes when the data is reached. An IOException is thrown if the CRC check @@ -7007,7 +7083,7 @@ @param hashAlgorithm </member> <member name="M:Org.BouncyCastle.Bcpg.ArmoredOutputStream.Dispose(System.Boolean)"> - <b>Note</b>: Dispose does nor Dispose the underlying stream. So it is possible to write + <b>Note</b>: close does nor close the underlying stream. So it is possible to write multiple objects using armoring to a single stream. </member> <member name="T:Org.BouncyCastle.Bcpg.Attr.ImageAttrib"> @@ -8465,6 +8541,21 @@ An <code>ISet</code> of <code>DerObjectIdentifier</code> objects. </summary> </member> + <member name="M:Org.BouncyCastle.Cms.OriginatorInformation.GetCertificates"> + Return the certificates stored in the underlying OriginatorInfo object. + + @return a Store of X509CertificateHolder objects. + </member> + <member name="M:Org.BouncyCastle.Cms.OriginatorInformation.GetCrls"> + Return the CRLs stored in the underlying OriginatorInfo object. + + @return a Store of X509CRLHolder objects. + </member> + <member name="M:Org.BouncyCastle.Cms.OriginatorInformation.ToAsn1Structure"> + Return the underlying ASN.1 object defining this SignerInformation object. + + @return a OriginatorInfo. + </member> <member name="T:Org.BouncyCastle.Cms.PasswordRecipientInformation"> the RecipientInfo class for a recipient who has been sent a message encrypted using a password. @@ -8640,6 +8731,9 @@ <member name="M:Org.BouncyCastle.Crypto.IBasicAgreement.Init(Org.BouncyCastle.Crypto.ICipherParameters)"> initialise the agreement engine. </member> + <member name="M:Org.BouncyCastle.Crypto.IBasicAgreement.GetFieldSize"> + return the field size for the agreement algorithm in bytes. + </member> <member name="M:Org.BouncyCastle.Crypto.IBasicAgreement.CalculateAgreement(Org.BouncyCastle.Crypto.ICipherParameters)"> given a public key from a given party calculate the next message in the agreement sequence. @@ -8648,6 +8742,9 @@ given a short term public key from a given party calculate the next message in the agreement sequence. </member> + <member name="T:Org.BouncyCastle.Crypto.Agreement.DHStandardGroups"> + <summary>Standard Diffie-Hellman groups from various IETF specifications.</summary> + </member> <member name="T:Org.BouncyCastle.Crypto.Agreement.ECDHBasicAgreement"> P1363 7.2.1 ECSVDP-DH @@ -9063,6 +9160,26 @@ @return the algorithm name </member> + <member name="M:Org.BouncyCastle.Utilities.IMemoable.Copy"> + <summary> + Produce a copy of this object with its configuration and in its current state. + </summary> + <remarks> + The returned object may be used simply to store the state, or may be used as a similar object + starting from the copied state. + </remarks> + </member> + <member name="M:Org.BouncyCastle.Utilities.IMemoable.Reset(Org.BouncyCastle.Utilities.IMemoable)"> + <summary> + Restore a copied object state into this object. + </summary> + <remarks> + Implementations of this method <em>should</em> try to avoid or minimise memory allocation to perform the reset. + </remarks> + <param name="other">an object originally {@link #copy() copied} from an object of the same type as this instance.</param> + <exception cref="T:System.InvalidCastException">if the provided object is not of the correct type.</exception> + <exception cref="T:Org.BouncyCastle.Utilities.MemoableResetException">if the <b>other</b> parameter is in some other way invalid.</exception> + </member> <member name="T:Org.BouncyCastle.Crypto.Digests.Gost3411Digest"> implementation of GOST R 34.11-94 </member> @@ -9218,7 +9335,7 @@ implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349. It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5 - is the "endienness" of the word processing! + is the "endianness" of the word processing! </member> <member name="M:Org.BouncyCastle.Crypto.Digests.Sha1Digest.#ctor(Org.BouncyCastle.Crypto.Digests.Sha1Digest)"> Copy constructor. This will copy the state of the provided @@ -9286,6 +9403,19 @@ <member name="M:Org.BouncyCastle.Crypto.Digests.Sha384Digest.Reset"> reset the chaining variables </member> + <member name="T:Org.BouncyCastle.Crypto.Digests.Sha3Digest"> + <summary> + Implementation of SHA-3 based on following KeccakNISTInterface.c from http://keccak.noekeon.org/ + </summary> + <remarks> + Following the naming conventions used in the C source code to enable easy review of the implementation. + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.Sha3Digest.GetByteLength"> + Return the size of block that the compression function is applied to in bytes. + + @return internal byte length of a block. + </member> <member name="T:Org.BouncyCastle.Crypto.Digests.Sha512Digest"> Draft FIPS 180-2 implementation of SHA-512. <b>Note:</b> As this is based on a draft this implementation is subject to change. @@ -9305,6 +9435,19 @@ <member name="M:Org.BouncyCastle.Crypto.Digests.Sha512Digest.Reset"> reset the chaining variables </member> + <member name="T:Org.BouncyCastle.Crypto.Digests.Sha512tDigest"> + FIPS 180-4 implementation of SHA-512/t + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.Sha512tDigest.#ctor(System.Int32)"> + Standard constructor + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.Sha512tDigest.#ctor(Org.BouncyCastle.Crypto.Digests.Sha512tDigest)"> + Copy constructor. This will copy the state of the provided + message digest. + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.Sha512tDigest.Reset"> + reset the chaining variables + </member> <member name="T:Org.BouncyCastle.Crypto.Digests.ShortenedDigest"> Wrapper class that reduces the output length of a particular digest to only the first n bytes of the digest function. @@ -9316,6 +9459,235 @@ @param length length in bytes of the output of doFinal. @exception ArgumentException if baseDigest is null, or length is greater than baseDigest.GetDigestSize(). </member> + <member name="T:Org.BouncyCastle.Crypto.Digests.SkeinDigest"> + <summary> + Implementation of the Skein parameterised hash function in 256, 512 and 1024 bit block sizes, + based on the <see cref="T:Org.BouncyCastle.Crypto.Engines.ThreefishEngine">Threefish</see> tweakable block cipher. + </summary> + <remarks> + This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 + competition in October 2010. + <p/> + Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. + </remarks> + <seealso cref="T:Org.BouncyCastle.Crypto.Digests.SkeinEngine"/> + <seealso cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinDigest.SKEIN_256"> + <summary> + 256 bit block size - Skein-256 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinDigest.SKEIN_512"> + <summary> + 512 bit block size - Skein-512 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinDigest.SKEIN_1024"> + <summary> + 1024 bit block size - Skein-1024 + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinDigest.#ctor(System.Int32,System.Int32)"> + <summary> + Constructs a Skein digest with an internal state size and output size. + </summary> + <param name="stateSizeBits">the internal state size in bits - one of <see cref="F:Org.BouncyCastle.Crypto.Digests.SkeinDigest.SKEIN_256"/> <see cref="F:Org.BouncyCastle.Crypto.Digests.SkeinDigest.SKEIN_512"/> or + <see cref="F:Org.BouncyCastle.Crypto.Digests.SkeinDigest.SKEIN_1024"/>.</param> + <param name="digestSizeBits">the output/digest size to produce in bits, which must be an integral number of + bytes.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinDigest.Init(Org.BouncyCastle.Crypto.Parameters.SkeinParameters)"> + <summary> + Optionally initialises the Skein digest with the provided parameters. + </summary> + See <see cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"></see> for details on the parameterisation of the Skein hash function. + <param name="parameters">the parameters to apply to this engine, or <code>null</code> to use no parameters.</param> + </member> + <member name="T:Org.BouncyCastle.Crypto.Digests.SkeinEngine"> + <summary> + Implementation of the Skein family of parameterised hash functions in 256, 512 and 1024 bit block + sizes, based on the <see cref="T:Org.BouncyCastle.Crypto.Engines.ThreefishEngine">Threefish</see> tweakable block cipher. + </summary> + <remarks> + This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 + competition in October 2010. + <p/> + Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. + <p/> + This implementation is the basis for <see cref="T:Org.BouncyCastle.Crypto.Digests.SkeinDigest"/> and <see cref="T:Org.BouncyCastle.Crypto.Macs.SkeinMac"/>, implementing the + parameter based configuration system that allows Skein to be adapted to multiple applications. <br/> + Initialising the engine with <see cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/> allows standard and arbitrary parameters to + be applied during the Skein hash function. + <p/> + Implemented: + <ul> + <li>256, 512 and 1024 bit internal states.</li> + <li>Full 96 bit input length.</li> + <li>Parameters defined in the Skein specification, and arbitrary other pre and post message + parameters.</li> + <li>Arbitrary output size in 1 byte intervals.</li> + </ul> + <p/> + Not implemented: + <ul> + <li>Sub-byte length input (bit padding).</li> + <li>Tree hashing.</li> + </ul> + </remarks> + <seealso cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.SKEIN_256"> + <summary> + 256 bit block size - Skein-256 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.SKEIN_512"> + <summary> + 512 bit block size - Skein-512 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.SKEIN_1024"> + <summary> + 1024 bit block size - Skein-1024 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.PARAM_TYPE_KEY"> + The parameter type for the Skein key. + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.PARAM_TYPE_CONFIG"> + The parameter type for the Skein configuration block. + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.PARAM_TYPE_MESSAGE"> + The parameter type for the message. + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.PARAM_TYPE_OUTPUT"> + The parameter type for the output transformation. + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.INITIAL_STATES"> + Precalculated UBI(CFG) states for common state/output combinations without key or other + pre-message params. + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.threefish"> + Underlying Threefish tweakable block cipher + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.outputSizeBytes"> + Size of the digest output, in bytes + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.chain"> + The current chaining/state value + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.initialState"> + The initial state value + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.key"> + The (optional) key parameter + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.preMessageParameters"> + Parameters to apply prior to the message + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.postMessageParameters"> + Parameters to apply after the message, but prior to output + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.ubi"> + The current UBI operation + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.singleByte"> + Buffer for single byte update method + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinEngine.#ctor(System.Int32,System.Int32)"> + <summary> + Constructs a Skein digest with an internal state size and output size. + </summary> + <param name="blockSizeBits">the internal state size in bits - one of <see cref="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.SKEIN_256"/> <see cref="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.SKEIN_512"/> or + <see cref="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.SKEIN_1024"/>.</param> + <param name="outputSizeBits">the output/digest size to produce in bits, which must be an integral number of + bytes.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinEngine.#ctor(Org.BouncyCastle.Crypto.Digests.SkeinEngine)"> + <summary> + Creates a SkeinEngine as an exact copy of an existing instance. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinEngine.Init(Org.BouncyCastle.Crypto.Parameters.SkeinParameters)"> + <summary> + Initialises the Skein engine with the provided parameters. See <see cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/> for + details on the parameterisation of the Skein hash function. + </summary> + <param name="parameters">the parameters to apply to this engine, or <code>null</code> to use no parameters.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinEngine.CreateInitialState"> + Calculate the initial (pre message block) chaining state. + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinEngine.Reset"> + <summary> + Reset the engine to the initial state (with the key and any pre-message parameters , ready to + accept message input. + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UbiTweak.LOW_RANGE"> + Point at which position might overflow long, so switch to add with carry logic + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UbiTweak.T1_FINAL"> + Bit 127 = final + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UbiTweak.T1_FIRST"> + Bit 126 = first + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UbiTweak.tweak"> + UBI uses a 128 bit tweak + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UbiTweak.extendedPosition"> + Whether 64 bit position exceeded + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UbiTweak.AdvancePosition(System.Int32)"> + Advances the position in the tweak by the specified value. + </member> + <member name="T:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UBI"> + The Unique Block Iteration chaining mode. + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UBI.currentBlock"> + Buffer for the current block of message data + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UBI.currentOffset"> + Offset into the current message block + </member> + <member name="F:Org.BouncyCastle.Crypto.Digests.SkeinEngine.UBI.message"> + Buffer for message words for feedback into encrypted block + </member> + <member name="T:Org.BouncyCastle.Crypto.Digests.SM3Digest"> + <summary> + Implementation of Chinese SM3 digest as described at + http://tools.ietf.org/html/draft-shen-sm3-hash-00 + and at .... ( Chinese PDF ) + </summary> + <remarks> + The specification says "process a bit stream", + but this is written to process bytes in blocks of 4, + meaning this will process 32-bit word groups. + But so do also most other digest specifications, + including the SHA-256 which was a origin for + this specification. + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SM3Digest.#ctor"> + <summary> + Standard constructor + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SM3Digest.#ctor(Org.BouncyCastle.Crypto.Digests.SM3Digest)"> + <summary> + Copy constructor. This will copy the state of the provided + message digest. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Digests.SM3Digest.Reset"> + <summary> + reset the chaining variables + </summary> + </member> <member name="T:Org.BouncyCastle.Crypto.Digests.TigerDigest"> implementation of Tiger based on: <a href="http://www.cs.technion.ac.il/~biham/Reports/Tiger"> @@ -9343,6 +9715,25 @@ <member name="M:Org.BouncyCastle.Crypto.Digests.WhirlpoolDigest.Reset"> Reset the chaining variables </member> + <member name="M:Org.BouncyCastle.Crypto.EC.CustomNamedCurves.GetByOid(Org.BouncyCastle.Asn1.DerObjectIdentifier)"> + return the X9ECParameters object for the named curve represented by + the passed in object identifier. Null if the curve isn't present. + + @param oid an object identifier representing a named curve, if present. + </member> + <member name="M:Org.BouncyCastle.Crypto.EC.CustomNamedCurves.GetOid(System.String)"> + return the object identifier signified by the passed in name. Null + if there is no object identifier associated with name. + + @return the object identifier associated with name, if present. + </member> + <member name="M:Org.BouncyCastle.Crypto.EC.CustomNamedCurves.GetName(Org.BouncyCastle.Asn1.DerObjectIdentifier)"> + return the named curve name represented by the given object identifier. + </member> + <member name="P:Org.BouncyCastle.Crypto.EC.CustomNamedCurves.Names"> + returns an enumeration containing the name strings for curves + contained in this structure. + </member> <member name="T:Org.BouncyCastle.Crypto.Encodings.ISO9796d1Encoding"> ISO 9796-1 padding. Note in the light of recent results you should only use this with RSA (rather than the "simpler" Rabin keys) and you @@ -9396,7 +9787,7 @@ <member name="T:Org.BouncyCastle.Crypto.Encodings.OaepEncoding"> Optimal Asymmetric Encryption Padding (OAEP) - see PKCS 1 V 2. </member> - <member name="M:Org.BouncyCastle.Crypto.Encodings.OaepEncoding.decodeBlock(System.Byte[],System.Int32,System.Int32)"> + <member name="M:Org.BouncyCastle.Crypto.Encodings.OaepEncoding.DecodeBlock(System.Byte[],System.Int32,System.Int32)"> @exception InvalidCipherTextException if the decrypted block turns out to be badly formatted. </member> @@ -9418,6 +9809,40 @@ Basic constructor. @param cipher </member> + <member name="M:Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding.#ctor(Org.BouncyCastle.Crypto.IAsymmetricBlockCipher,System.Int32)"> + Constructor for decryption with a fixed plaintext length. + + @param cipher The cipher to use for cryptographic operation. + @param pLen Length of the expected plaintext. + </member> + <member name="M:Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding.#ctor(Org.BouncyCastle.Crypto.IAsymmetricBlockCipher,System.Byte[])"> + Constructor for decryption with a fixed plaintext length and a fallback + value that is returned, if the padding is incorrect. + + @param cipher + The cipher to use for cryptographic operation. + @param fallback + The fallback value, we don't to a arraycopy here. + </member> + <member name="M:Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding.CheckPkcs1Encoding(System.Byte[],System.Int32)"> + Checks if the argument is a correctly PKCS#1.5 encoded Plaintext + for encryption. + + @param encoded The Plaintext. + @param pLen Expected length of the plaintext. + @return Either 0, if the encoding is correct, or -1, if it is incorrect. + </member> + <member name="M:Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding.DecodeBlockOrRandom(System.Byte[],System.Int32,System.Int32)"> + Decode PKCS#1.5 encoding, and return a random value if the padding is not correct. + + @param in The encrypted block. + @param inOff Offset in the encrypted block. + @param inLen Length of the encrypted block. + @param pLen Length of the desired output. + @return The plaintext without padding, or a random value if the padding was incorrect. + + @throws InvalidCipherTextException + </member> <member name="M:Org.BouncyCastle.Crypto.Encodings.Pkcs1Encoding.DecodeBlock(System.Byte[],System.Int32,System.Int32)"> @exception InvalidCipherTextException if the decrypted block is not in Pkcs1 format. </member> @@ -9759,6 +10184,97 @@ @param D the 96-127 bits of the ciphertext block @param result the resulting plaintext </member> + <member name="T:Org.BouncyCastle.Crypto.Engines.ChaChaEngine"> + <summary> + Implementation of Daniel J. Bernstein's ChaCha stream cipher. + </summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.Engines.Salsa20Engine"> + <summary> + Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005 + </summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.IStreamCipher"> + <summary>The interface stream ciphers conform to.</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> + <summary>Initialise the cipher.</summary> + <param name="forEncryption">If true the cipher is initialised for encryption, + if false for decryption.</param> + <param name="parameters">The key and other data required by the cipher.</param> + <exception cref="T:System.ArgumentException"> + If the parameters argument is inappropriate. + </exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.ReturnByte(System.Byte)"> + <summary>encrypt/decrypt a single byte returning the result.</summary> + <param name="input">the byte to be processed.</param> + <returns>the result of processing the input byte.</returns> + </member> + <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)"> + <summary> + Process a block of bytes from <c>input</c> putting the result into <c>output</c>. + </summary> + <param name="input">The input byte array.</param> + <param name="inOff"> + The offset into <c>input</c> where the data to be processed starts. + </param> + <param name="length">The number of bytes to be processed.</param> + <param name="output">The output buffer the processed bytes go into.</param> + <param name="outOff"> + The offset into <c>output</c> the processed data starts at. + </param> + <exception cref="T:Org.BouncyCastle.Crypto.DataLengthException">If the output buffer is too small.</exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.Reset"> + <summary> + Reset the cipher to the same state as it was after the last init (if there was one). + </summary> + </member> + <member name="P:Org.BouncyCastle.Crypto.IStreamCipher.AlgorithmName"> + <summary>The name of the algorithm this cipher implements.</summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.Salsa20Engine.StateSize"> + Constants + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.Salsa20Engine.#ctor"> + <summary> + Creates a 20 round Salsa20 engine. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.Salsa20Engine.#ctor(System.Int32)"> + <summary> + Creates a Salsa20 engine with a specific number of rounds. + </summary> + <param name="rounds">the number of rounds (must be an even number).</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.Salsa20Engine.R(System.UInt32,System.Int32)"> + Rotate left + + @param x value to rotate + @param y amount to rotate x + + @return rotated x + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ChaChaEngine.#ctor"> + <summary> + Creates a 20 rounds ChaCha engine. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ChaChaEngine.#ctor(System.Int32)"> + <summary> + Creates a ChaCha engine with a specific number of rounds. + </summary> + <param name="rounds">the number of rounds (must be an even number).</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ChaChaEngine.ChachaCore(System.Int32,System.UInt32[],System.UInt32[])"> + <summary> + ChacCha function. + </summary> + <param name="rounds">The number of ChaCha rounds to execute</param> + <param name="input">The input words.</param> + <param name="x">The ChaCha state to modify.</param> + </member> <member name="T:Org.BouncyCastle.Crypto.Engines.DesEdeEngine"> <remarks>A class that provides a basic DESede (or Triple DES) engine.</remarks> </member> @@ -9938,46 +10454,6 @@ http://www.ecrypt.eu.org/stream/hcp3.html </p> </member> - <member name="T:Org.BouncyCastle.Crypto.IStreamCipher"> - <summary>The interface stream ciphers conform to.</summary> - </member> - <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> - <summary>Initialise the cipher.</summary> - <param name="forEncryption">If true the cipher is initialised for encryption, - if false for decryption.</param> - <param name="parameters">The key and other data required by the cipher.</param> - <exception cref="T:System.ArgumentException"> - If the parameters argument is inappropriate. - </exception> - </member> - <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.ReturnByte(System.Byte)"> - <summary>encrypt/decrypt a single byte returning the result.</summary> - <param name="input">the byte to be processed.</param> - <returns>the result of processing the input byte.</returns> - </member> - <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.ProcessBytes(System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32)"> - <summary> - Process a block of bytes from <c>input</c> putting the result into <c>output</c>. - </summary> - <param name="input">The input byte array.</param> - <param name="inOff"> - The offset into <c>input</c> where the data to be processed starts. - </param> - <param name="length">The number of bytes to be processed.</param> - <param name="output">The output buffer the processed bytes go into.</param> - <param name="outOff"> - The offset into <c>output</c> the processed data starts at. - </param> - <exception cref="T:Org.BouncyCastle.Crypto.DataLengthException">If the output buffer is too small.</exception> - </member> - <member name="M:Org.BouncyCastle.Crypto.IStreamCipher.Reset"> - <summary> - Reset the cipher to the same state as it was after the last init (if there was one). - </summary> - </member> - <member name="P:Org.BouncyCastle.Crypto.IStreamCipher.AlgorithmName"> - <summary>The name of the algorithm this cipher implements.</summary> - </member> <member name="M:Org.BouncyCastle.Crypto.Engines.HC128Engine.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> Initialise a HC-128 cipher. @@ -10010,6 +10486,73 @@ @throws ArgumentException if the params argument is inappropriate (ie. the key is not 256 bit long). </member> + <member name="T:Org.BouncyCastle.Crypto.Engines.IdeaEngine"> + A class that provides a basic International Data Encryption Algorithm (IDEA) engine. + <p> + This implementation is based on the "HOWTO: INTERNATIONAL DATA ENCRYPTION ALGORITHM" + implementation summary by Fauzan Mirza (F.U.Mirza@sheffield.ac.uk). (baring 1 typo at the + end of the mulinv function!). + </p> + <p> + It can be found at ftp://ftp.funet.fi/pub/crypt/cryptography/symmetric/idea/ + </p> + <p> + Note 1: This algorithm is patented in the USA, Japan, and Europe including + at least Austria, France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland + and the United Kingdom. Non-commercial use is free, however any commercial + products are liable for royalties. Please see + <a href="http://www.mediacrypt.com">www.mediacrypt.com</a> for + further details. This announcement has been included at the request of + the patent holders. + </p> + <p> + Note 2: Due to the requests concerning the above, this algorithm is now only + included in the extended assembly. It is not included in the default distributions. + </p> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.#ctor"> + standard constructor. + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> + initialise an IDEA cipher. + + @param forEncryption whether or not we are for encryption. + @param parameters the parameters required to set up the cipher. + @exception ArgumentException if the parameters argument is + inappropriate. + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.Mul(System.Int32,System.Int32)"> + return x = x * y where the multiplication is done modulo + 65537 (0x10001) (as defined in the IDEA specification) and + a zero input is taken to be 65536 (0x10000). + + @param x the x value + @param y the y value + @return x = x * y + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.ExpandKey(System.Byte[])"> + The following function is used to expand the user key to the encryption + subkey. The first 16 bytes are the user key, and the rest of the subkey + is calculated by rotating the previous 16 bytes by 25 bits to the left, + and so on until the subkey is completed. + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.MulInv(System.Int32)"> + This function computes multiplicative inverse using Euclid's Greatest + Common Divisor algorithm. Zero and one are self inverse. + <p> + i.e. x * MulInv(x) == 1 (modulo BASE) + </p> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.AddInv(System.Int32)"> + Return the additive inverse of x. + <p> + i.e. x + AddInv(x) == 0 + </p> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.IdeaEngine.InvertKey(System.Int32[])"> + The function to invert the encryption subkey to the decryption subkey. + It also involves the multiplicative inverse and the additive inverse functions. + </member> <member name="T:Org.BouncyCastle.Crypto.Engines.IesEngine"> support class for constructing intergrated encryption ciphers for doing basic message exchanges on top of key agreement ciphers @@ -10550,20 +11093,6 @@ @return the result of the RSA process. @exception DataLengthException the input block is too large. </member> - <member name="T:Org.BouncyCastle.Crypto.Engines.Salsa20Engine"> - Implementation of Daniel J. Bernstein's Salsa20 stream cipher, Snuffle 2005 - </member> - <member name="F:Org.BouncyCastle.Crypto.Engines.Salsa20Engine.StateSize"> - Constants - </member> - <member name="M:Org.BouncyCastle.Crypto.Engines.Salsa20Engine.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> - initialise a Salsa20 cipher. - - @param forEncryption whether or not we are for encryption. - @param params the parameters required to set up the cipher. - @exception ArgumentException if the params argument is - inappropriate. - </member> <member name="T:Org.BouncyCastle.Crypto.Engines.SeedEngine"> Implementation of the SEED algorithm as described in RFC 4009 </member> @@ -10720,6 +11249,159 @@ @param key the key to be used </member> + <member name="T:Org.BouncyCastle.Crypto.Engines.ThreefishEngine"> + <summary> + Implementation of the Threefish tweakable large block cipher in 256, 512 and 1024 bit block + sizes. + </summary> + <remarks> + This is the 1.3 version of Threefish defined in the Skein hash function submission to the NIST + SHA-3 competition in October 2010. + <p/> + Threefish was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. + <p/> + This implementation inlines all round functions, unrolls 8 rounds, and uses 1.2k of static tables + to speed up key schedule injection. <br/> + 2 x block size state is retained by each cipher instance. + </remarks> + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BLOCKSIZE_256"> + <summary> + 256 bit block size - Threefish-256 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BLOCKSIZE_512"> + <summary> + 512 bit block size - Threefish-512 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BLOCKSIZE_1024"> + <summary> + 1024 bit block size - Threefish-1024 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.TWEAK_SIZE_BYTES"> + Size of the tweak in bytes (always 128 bit/16 bytes) + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.ROUNDS_256"> + Rounds in Threefish-256 + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.ROUNDS_512"> + Rounds in Threefish-512 + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.ROUNDS_1024"> + Rounds in Threefish-1024 + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.MAX_ROUNDS"> + Max rounds of any of the variants + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.C_240"> + Key schedule parity constant + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.blocksizeBytes"> + Block size in bytes + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.blocksizeWords"> + Block size in 64 bit words + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.currentBlock"> + Buffer for byte oriented processBytes to call internal word API + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.t"> + Tweak bytes (2 byte t1,t2, calculated t3 and repeat of t1,t2 for modulo free lookup + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.kw"> + Key schedule words + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.cipher"> + The internal cipher implementation (varies by blocksize) + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.#ctor(System.Int32)"> + <summary> + Constructs a new Threefish cipher, with a specified block size. + </summary> + <param name="blocksizeBits">the block size in bits, one of <see cref="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BLOCKSIZE_256"/>, <see cref="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BLOCKSIZE_512"/>, + <see cref="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BLOCKSIZE_1024"/> .</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> + <summary> + Initialise the engine. + </summary> + <param name="forEncryption">Initialise for encryption if true, for decryption if false.</param> + <param name="parameters">an instance of <see cref="T:Org.BouncyCastle.Crypto.Parameters.TweakableBlockCipherParameters"/> or <see cref="T:Org.BouncyCastle.Crypto.Parameters.KeyParameter"/> (to + use a 0 tweak)</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Init(System.Boolean,System.UInt64[],System.UInt64[])"> + <summary> + Initialise the engine, specifying the key and tweak directly. + </summary> + <param name="forEncryption">the cipher mode.</param> + <param name="key">the words of the key, or <code>null</code> to use the current key.</param> + <param name="tweak">the 2 word (128 bit) tweak, or <code>null</code> to use the current tweak.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.ProcessBlock(System.UInt64[],System.UInt64[])"> + <summary> + Process a block of data represented as 64 bit words. + </summary> + <returns>the number of 8 byte words processed (which will be the same as the block size).</returns> + <param name="inWords">a block sized buffer of words to process.</param> + <param name="outWords">a block sized buffer of words to receive the output of the operation.</param> + <exception cref="T:Org.BouncyCastle.Crypto.DataLengthException">if either the input or output is not block sized</exception> + <exception cref="T:System.InvalidOperationException">if this engine is not initialised</exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.BytesToWord(System.Byte[],System.Int32)"> + <summary> + Read a single 64 bit word from input in LSB first order. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.WordToBytes(System.UInt64,System.Byte[],System.Int32)"> + <summary> + Write a 64 bit word to output in LSB first order. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.RotlXor(System.UInt64,System.Int32,System.UInt64)"> + Rotate left + xor part of the mix operation. + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.XorRotr(System.UInt64,System.Int32,System.UInt64)"> + Rotate xor + rotate right part of the unmix operation. + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.ThreefishCipher.t"> + The extended + repeated tweak words + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.ThreefishCipher.kw"> + The extended + repeated key words + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish256Cipher.ROTATION_0_0"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish256Cipher.ROTATION_0_1"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish512Cipher.ROTATION_0_0"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish512Cipher.ROTATION_0_1"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish512Cipher.ROTATION_0_2"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish512Cipher.ROTATION_0_3"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish1024Cipher.ROTATION_0_0"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish1024Cipher.ROTATION_0_1"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish1024Cipher.ROTATION_0_2"> + Mix rotation constants defined in Skein 1.3 specification + </member> + <member name="F:Org.BouncyCastle.Crypto.Engines.ThreefishEngine.Threefish1024Cipher.ROTATION_0_3"> + Mix rotation constants defined in Skein 1.3 specification + </member> <member name="T:Org.BouncyCastle.Crypto.Engines.TwofishEngine"> A class that provides Twofish encryption operations. @@ -10785,6 +11467,21 @@ @exception ArgumentException if the params argument is inappropriate. </member> + <member name="T:Org.BouncyCastle.Crypto.Engines.XSalsa20Engine"> + <summary> + Implementation of Daniel J. Bernstein's XSalsa20 stream cipher - Salsa20 with an extended nonce. + </summary> + <remarks> + XSalsa20 requires a 256 bit key, and a 192 bit nonce. + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Engines.XSalsa20Engine.SetKey(System.Byte[],System.Byte[])"> + <summary> + XSalsa20 key generation: process 256 bit input key and 128 bits of the input nonce + using a core Salsa20 function without input addition to produce 256 bit working key + and use that with the remaining 64 bits of nonce to initialize a standard Salsa20 engine state. + </summary> + </member> <member name="T:Org.BouncyCastle.Crypto.Engines.XteaEngine"> An XTEA engine. </member> @@ -10874,13 +11571,13 @@ Note: can take a while...</p> </member> <member name="T:Org.BouncyCastle.Crypto.Generators.DsaKeyPairGenerator"> - * a DSA key pair generator. - * - * This Generates DSA keys in line with the method described - * in <i>FIPS 186-3 B.1 FFC Key Pair Generation</i>. + a DSA key pair generator. + + This Generates DSA keys in line with the method described + in <i>FIPS 186-3 B.1 FFC Key Pair Generation</i>. </member> <member name="T:Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator"> - Generate suitable parameters for DSA, in line with FIPS 186-2. + Generate suitable parameters for DSA, in line with FIPS 186-2, or FIPS 186-3. </member> <member name="M:Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator.Init(System.Int32,System.Int32,Org.BouncyCastle.Security.SecureRandom)"> initialise the key generator. @@ -10889,6 +11586,14 @@ @param certainty measure of robustness of prime (for FIPS 186-2 compliance this should be at least 80). @param random random byte source. </member> + <member name="M:Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator.Init(Org.BouncyCastle.Crypto.Parameters.DsaParameterGenerationParameters)"> + Initialise the key generator for DSA 2. + <p> + Use this init method if you need to generate parameters for DSA 2 keys. + </p> + + @param params DSA 2 key generation parameters. + </member> <member name="M:Org.BouncyCastle.Crypto.Generators.DsaParametersGenerator.GenerateParameters"> which Generates the p and g values from the given parameters, returning the DsaParameters object. @@ -10900,7 +11605,7 @@ <i>FIPS 186-3 A.1 Generation of the FFC Primes p and q</i>. </member> <member name="M:Org.BouncyCastle.Crypto.Generators.ECKeyPairGenerator.GenerateKeyPair"> - Given the domain parameters this routine Generates an EC key + Given the domain parameters this routine generates an EC key pair in accordance with X9.62 section 5.2.1 pages 26, 27. </member> <member name="T:Org.BouncyCastle.Crypto.Generators.ElGamalKeyPairGenerator"> @@ -10992,7 +11697,7 @@ the ArrayList to be permuted @param rand the source of Randomness for permutation - @return a new ArrayList with the permuted elements. + @return a new IList with the permuted elements. </member> <member name="M:Org.BouncyCastle.Crypto.Generators.NaccacheSternKeyPairGenerator.findFirstPrimes(System.Int32)"> Finds the first 'count' primes starting with 3 @@ -11240,6 +11945,57 @@ @param keySize the size of the key we want (in bits) @return a KeyParameter object. </member> + <member name="T:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator"> + <summary> + Generates keys for the Poly1305 MAC. + </summary> + <remarks> + Poly1305 keys are 256 bit keys consisting of a 128 bit secret key used for the underlying block + cipher followed by a 128 bit {@code r} value used for the polynomial portion of the Mac. <br/> + The {@code r} value has a specific format with some bits required to be cleared, resulting in an + effective 106 bit key. <br/> + A separately generated 256 bit key can be modified to fit the Poly1305 key format by using the + {@link #clamp(byte[])} method to clear the required bits. + </remarks> + <seealso cref="T:Org.BouncyCastle.Crypto.Macs.Poly1305"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator.engineInit(Org.BouncyCastle.Crypto.KeyGenerationParameters)"> + <summary> + Initialises the key generator. + </summary> + <remarks> + Poly1305 keys are always 256 bits, so the key length in the provided parameters is ignored. + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator.engineGenerateKey"> + <summary> + Generates a 256 bit key in the format required for Poly1305 - e.g. + <code>k[0] ... k[15], r[0] ... r[15]</code> with the required bits in <code>r</code> cleared + as per <see cref="M:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator.Clamp(System.Byte[])"/>. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator.Clamp(System.Byte[])"> + <summary> + Modifies an existing 32 byte key value to comply with the requirements of the Poly1305 key by + clearing required bits in the <code>r</code> (second 16 bytes) portion of the key.<br/> + Specifically: + <ul> + <li>r[3], r[7], r[11], r[15] have top four bits clear (i.e., are {0, 1, . . . , 15})</li> + <li>r[4], r[8], r[12] have bottom two bits clear (i.e., are in {0, 4, 8, . . . , 252})</li> + </ul> + </summary> + <param name="key">a 32 byte key value <code>k[0] ... k[15], r[0] ... r[15]</code></param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator.CheckKey(System.Byte[])"> + <summary> + Checks a 32 byte key for compliance with the Poly1305 key requirements, e.g. + <code>k[0] ... k[15], r[0] ... r[15]</code> with the required bits in <code>r</code> cleared + as per <see cref="M:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator.Clamp(System.Byte[])"/>. + </summary> + <param name="key">Key.</param> + <exception cref="T:System.ArgumentException">if the key is of the wrong length, or has invalid bits set + in the <code>r</code> portion of the key.</exception> + </member> <member name="T:Org.BouncyCastle.Crypto.Generators.RsaBlindingFactorGenerator"> Generate a random factor suitable for use with RSA blind signatures as outlined in Chaum's blinding and unblinding as outlined in @@ -11258,6 +12014,12 @@ <member name="T:Org.BouncyCastle.Crypto.Generators.RsaKeyPairGenerator"> an RSA key pair generator. </member> + <member name="M:Org.BouncyCastle.Crypto.Generators.RsaKeyPairGenerator.ChooseRandomPrime(System.Int32,Org.BouncyCastle.Math.BigInteger)"> + <summary>Choose a random prime value for use with RSA</summary> + <param name="bitlength">the bit-length of the returned prime</param> + <param name="e">the RSA public exponent</param> + <returns>a prime p, with (p-1) relatively prime to e</returns> + </member> <member name="T:Org.BouncyCastle.Crypto.IDsa"> interface for classes implementing the Digital Signature Algorithm </member> @@ -11595,6 +12357,42 @@ <member name="M:Org.BouncyCastle.Crypto.Macs.CMac.Reset"> Reset the mac generator. </member> + <member name="T:Org.BouncyCastle.Crypto.Macs.GMac"> + <summary> + The GMAC specialisation of Galois/Counter mode (GCM) detailed in NIST Special Publication + 800-38D. + </summary> + <remarks> + GMac is an invocation of the GCM mode where no data is encrypted (i.e. all input data to the Mac + is processed as additional authenticated data with the underlying GCM block cipher). + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.GMac.#ctor(Org.BouncyCastle.Crypto.Modes.GcmBlockCipher)"> + <summary> + Creates a GMAC based on the operation of a block cipher in GCM mode. + </summary> + <remarks> + This will produce an authentication code the length of the block size of the cipher. + </remarks> + <param name="cipher">the cipher to be used in GCM mode to generate the MAC.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.GMac.#ctor(Org.BouncyCastle.Crypto.Modes.GcmBlockCipher,System.Int32)"> + <summary> + Creates a GMAC based on the operation of a 128 bit block cipher in GCM mode. + </summary> + <remarks> + This will produce an authentication code the length of the block size of the cipher. + </remarks> + <param name="cipher">the cipher to be used in GCM mode to generate the MAC.</param> + <param name="macSizeBits">the mac size to generate, in bits. Must be a multiple of 8, between 32 and 128 (inclusive). + Sizes less than 96 are not recommended, but are supported for specialized applications.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.GMac.Init(Org.BouncyCastle.Crypto.ICipherParameters)"> + <summary> + Initialises the GMAC - requires a <see cref="T:Org.BouncyCastle.Crypto.Parameters.ParametersWithIV"/> + providing a <see cref="T:Org.BouncyCastle.Crypto.Parameters.KeyParameter"/> and a nonce. + </summary> + </member> <member name="T:Org.BouncyCastle.Crypto.Macs.Gost28147Mac"> implementation of GOST 28147-89 MAC </member> @@ -11657,6 +12455,159 @@ <member name="M:Org.BouncyCastle.Crypto.Macs.ISO9797Alg3Mac.Reset"> Reset the mac generator. </member> + <member name="T:Org.BouncyCastle.Crypto.Macs.Poly1305"> + <summary> + Poly1305 message authentication code, designed by D. J. Bernstein. + </summary> + <remarks> + Poly1305 computes a 128-bit (16 bytes) authenticator, using a 128 bit nonce and a 256 bit key + consisting of a 128 bit key applied to an underlying cipher, and a 128 bit key (with 106 + effective key bits) used in the authenticator. + + The polynomial calculation in this implementation is adapted from the public domain <a href="https://github.com/floodyberry/poly1305-donna">poly1305-donna-unrolled</a> C implementation + by Andrew M (@floodyberry). + </remarks> + <seealso cref="T:Org.BouncyCastle.Crypto.Generators.Poly1305KeyGenerator"/> + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.r0"> + Polynomial key + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.r1"> + Polynomial key + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.r2"> + Polynomial key + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.r3"> + Polynomial key + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.r4"> + Polynomial key + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.s1"> + Precomputed 5 * r[1..4] + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.s2"> + Precomputed 5 * r[1..4] + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.s3"> + Precomputed 5 * r[1..4] + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.s4"> + Precomputed 5 * r[1..4] + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.k0"> + Encrypted nonce + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.k1"> + Encrypted nonce + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.k2"> + Encrypted nonce + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.k3"> + Encrypted nonce + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.currentBlock"> + Current block of buffered input + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.currentBlockOffset"> + Current offset in input buffer + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.h0"> + Polynomial accumulator + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.h1"> + Polynomial accumulator + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.h2"> + Polynomial accumulator + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.h3"> + Polynomial accumulator + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.Poly1305.h4"> + Polynomial accumulator + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.Poly1305.#ctor"> + Constructs a Poly1305 MAC, where the key passed to init() will be used directly. + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.Poly1305.#ctor(Org.BouncyCastle.Crypto.IBlockCipher)"> + Constructs a Poly1305 MAC, using a 128 bit block cipher. + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.Poly1305.Init(Org.BouncyCastle.Crypto.ICipherParameters)"> + <summary> + Initialises the Poly1305 MAC. + </summary> + <param name="parameters">a {@link ParametersWithIV} containing a 128 bit nonce and a {@link KeyParameter} with + a 256 bit key complying to the {@link Poly1305KeyGenerator Poly1305 key format}.</param> + </member> + <member name="T:Org.BouncyCastle.Crypto.Macs.SipHash"> + <summary> + Implementation of SipHash as specified in "SipHash: a fast short-input PRF", by Jean-Philippe + Aumasson and Daniel J. Bernstein (https://131002.net/siphash/siphash.pdf). + </summary> + <remarks> + "SipHash is a family of PRFs SipHash-c-d where the integer parameters c and d are the number of + compression rounds and the number of finalization rounds. A compression round is identical to a + finalization round and this round function is called SipRound. Given a 128-bit key k and a + (possibly empty) byte string m, SipHash-c-d returns a 64-bit value..." + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.SipHash.#ctor"> + <summary>SipHash-2-4</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.SipHash.#ctor(System.Int32,System.Int32)"> + <summary>SipHash-c-d</summary> + <param name="c">the number of compression rounds</param> + <param name="d">the number of finalization rounds</param> + </member> + <member name="T:Org.BouncyCastle.Crypto.Macs.SkeinMac"> + <summary> + Implementation of the Skein parameterised MAC function in 256, 512 and 1024 bit block sizes, + based on the <see cref="T:Org.BouncyCastle.Crypto.Engines.ThreefishEngine">Threefish</see> tweakable block cipher. + </summary> + <remarks> + This is the 1.3 version of Skein defined in the Skein hash function submission to the NIST SHA-3 + competition in October 2010. + <p/> + Skein was designed by Niels Ferguson - Stefan Lucks - Bruce Schneier - Doug Whiting - Mihir + Bellare - Tadayoshi Kohno - Jon Callas - Jesse Walker. + </remarks> + <seealso cref="T:Org.BouncyCastle.Crypto.Digests.SkeinEngine"/> + <seealso cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/> + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.SkeinMac.SKEIN_256"> + <summary> + 256 bit block size - Skein-256 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.SkeinMac.SKEIN_512"> + <summary> + 512 bit block size - Skein-512 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Macs.SkeinMac.SKEIN_1024"> + <summary> + 1024 bit block size - Skein-1024 + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.SkeinMac.#ctor(System.Int32,System.Int32)"> + <summary> + Constructs a Skein MAC with an internal state size and output size. + </summary> + <param name="stateSizeBits">the internal state size in bits - one of <see cref="F:Org.BouncyCastle.Crypto.Macs.SkeinMac.SKEIN_256"/> <see cref="F:Org.BouncyCastle.Crypto.Macs.SkeinMac.SKEIN_512"/> or + <see cref="F:Org.BouncyCastle.Crypto.Macs.SkeinMac.SKEIN_1024"/>.</param> + <param name="digestSizeBits">the output/MAC size to produce in bits, which must be an integral number of + bytes.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Macs.SkeinMac.Init(Org.BouncyCastle.Crypto.ICipherParameters)"> + <summary> + Optionally initialises the Skein digest with the provided parameters. + </summary> + See <see cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"></see> for details on the parameterisation of the Skein hash function. + <param name="parameters">the parameters to apply to this engine, or <code>null</code> to use no parameters.</param> + </member> <member name="T:Org.BouncyCastle.Crypto.MaxBytesExceededException"> <summary> This exception is thrown whenever a cipher requires a change of key, iv @@ -11738,11 +12689,11 @@ @return the name of the underlying algorithm followed by "/CBC". </member> <member name="T:Org.BouncyCastle.Crypto.Modes.CcmBlockCipher"> - * Implements the Counter with Cipher Block Chaining mode (CCM) detailed in - * NIST Special Publication 800-38C. - * <p> - * <b>Note</b>: this mode is a packet mode - it needs all the data up front. - * </p> + Implements the Counter with Cipher Block Chaining mode (CCM) detailed in + NIST Special Publication 800-38C. + <p> + <b>Note</b>: this mode is a packet mode - it needs all the data up front. + </p> </member> <member name="T:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher"> <summary> @@ -11750,6 +12701,9 @@ and optional associated data.</summary> <see cref="T:Org.BouncyCastle.Crypto.Parameters.AeadParameters"/> </member> + <member name="M:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher.GetUnderlyingCipher"> + <summary>The block cipher underlying this algorithm.</summary> + </member> <member name="M:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> <summary>Initialise the cipher.</summary> <remarks>Parameter can either be an AeadParameters or a ParametersWithIV object.</remarks> @@ -11759,6 +12713,18 @@ <member name="M:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher.GetBlockSize"> <returns>The block size for this cipher, in bytes.</returns> </member> + <member name="M:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher.ProcessAadByte(System.Byte)"> + <summary>Add a single byte to the associated data check.</summary> + <remarks>If the implementation supports it, this will be an online operation and will not retain the associated data.</remarks> + <param name="input">The byte to be processed.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher.ProcessAadBytes(System.Byte[],System.Int32,System.Int32)"> + <summary>Add a sequence of bytes to the associated data check.</summary> + <remarks>If the implementation supports it, this will be an online operation and will not retain the associated data.</remarks> + <param name="inBytes">The input byte array.</param> + <param name="inOff">The offset into the input array where the data to be processed starts.</param> + <param name="len">The number of bytes to be processed.</param> + </member> <member name="M:Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher.ProcessByte(System.Byte,System.Byte[],System.Int32)"> Encrypt/decrypt a single byte. @@ -11994,6 +12960,12 @@ NIST Special Publication 800-38D. </summary> </member> + <member name="M:Org.BouncyCastle.Crypto.Modes.GcmBlockCipher.Init(System.Boolean,Org.BouncyCastle.Crypto.ICipherParameters)"> + <remarks> + MAC sizes from 32 bits to 128 bits (must be a multiple of 8) are supported. The default is 128 bits. + Sizes less than 96 are not recommended, but are supported for specialized applications. + </remarks> + </member> <member name="T:Org.BouncyCastle.Crypto.Modes.GOfbBlockCipher"> implements the GOST 28147 OFB counter mode (GCTR). </member> @@ -12046,6 +13018,19 @@ @return the name of the underlying algorithm followed by "/GCTR" and the block size in bits </member> + <member name="T:Org.BouncyCastle.Crypto.Modes.OcbBlockCipher"> + An implementation of <a href="http://tools.ietf.org/html/rfc7253">RFC 7253 on The OCB + Authenticated-Encryption Algorithm</a>, licensed per: + + <blockquote><p><a href="http://www.cs.ucdavis.edu/~rogaway/ocb/license1.pdf">License for + Open-Source Software Implementations of OCB</a> (Jan 9, 2013) - 'License 1'<br/> + Under this license, you are authorized to make, use, and distribute open-source software + implementations of OCB. This license terminates for you if you sue someone over their open-source + software implementation of OCB claiming that you have a patent covering their implementation. + </p><p> + This is a non-binding summary of a legal document (the link above). The parameters of the license + are specified in the license document and that document is controlling.</p></blockquote> + </member> <member name="T:Org.BouncyCastle.Crypto.Modes.OfbBlockCipher"> implements a Output-FeedBack (OFB) mode on top of a simple cipher. </member> @@ -12443,6 +13428,13 @@ <returns> the name of the algorithm the cipher implements. </returns> </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.AeadParameters.#ctor(Org.BouncyCastle.Crypto.Parameters.KeyParameter,System.Int32,System.Byte[])"> + Base constructor. + + @param key key to be used by underlying cipher + @param macSize macSize in bits + @param nonce nonce to be used + </member> <member name="M:Org.BouncyCastle.Crypto.Parameters.AeadParameters.#ctor(Org.BouncyCastle.Crypto.Parameters.KeyParameter,System.Int32,System.Byte[],System.Byte[])"> Base constructor. @@ -12495,6 +13487,23 @@ <member name="P:Org.BouncyCastle.Crypto.Parameters.DHParameters.L"> <summary>The bitlength of the private value.</summary> </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.DsaParameterGenerationParameters.#ctor(System.Int32,System.Int32,System.Int32,Org.BouncyCastle.Security.SecureRandom)"> + Construct without a usage index, this will do a random construction of G. + + @param L desired length of prime P in bits (the effective key size). + @param N desired length of prime Q in bits. + @param certainty certainty level for prime number generation. + @param random the source of randomness to use. + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.DsaParameterGenerationParameters.#ctor(System.Int32,System.Int32,System.Int32,Org.BouncyCastle.Security.SecureRandom,System.Int32)"> + Construct for a specific usage index - this has the effect of using verifiable canonical generation of G. + + @param L desired length of prime P in bits (the effective key size). + @param N desired length of prime Q in bits. + @param certainty certainty level for prime number generation. + @param random the source of randomness to use. + @param usageIndex a valid usage index. + </member> <member name="P:Org.BouncyCastle.Crypto.Parameters.ElGamalParameters.G"> return the generator - g </member> @@ -12607,6 +13616,185 @@ <member name="T:Org.BouncyCastle.Crypto.Parameters.ParametersWithSalt"> <summary> Cipher parameters with a fixed salt value associated with them.</summary> </member> + <member name="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"> + <summary> + Parameters for the Skein hash function - a series of byte[] strings identified by integer tags. + </summary> + <remarks> + Parameterised Skein can be used for: + <ul> + <li>MAC generation, by providing a <see cref="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetKey(System.Byte[])">key</see>.</li> + <li>Randomised hashing, by providing a <see cref="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetNonce(System.Byte[])">nonce</see>.</li> + <li>A hash function for digital signatures, associating a + <see cref="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetPublicKey(System.Byte[])">public key</see> with the message digest.</li> + <li>A key derivation function, by providing a + <see cref="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetKeyIdentifier(System.Byte[])">key identifier</see>.</li> + <li>Personalised hashing, by providing a + <see cref="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetPersonalisation(System.DateTime,System.String,System.String)">recommended format</see> or + <see cref="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetPersonalisation(System.Byte[])">arbitrary</see> personalisation string.</li> + </ul> + </remarks> + <seealso cref="T:Org.BouncyCastle.Crypto.Digests.SkeinEngine"/> + <seealso cref="T:Org.BouncyCastle.Crypto.Digests.SkeinDigest"/> + <seealso cref="T:Org.BouncyCastle.Crypto.Macs.SkeinMac"/> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY"> + <summary> + The parameter type for a secret key, supporting MAC or KDF functions: 0 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_CONFIG"> + <summary> + The parameter type for the Skein configuration block: 4 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_PERSONALISATION"> + <summary> + The parameter type for a personalisation string: 8 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_PUBLIC_KEY"> + <summary> + The parameter type for a public key: 12 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY_IDENTIFIER"> + <summary> + The parameter type for a key identifier string: 16 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_NONCE"> + <summary> + The parameter type for a nonce: 20 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_MESSAGE"> + <summary> + The parameter type for the message: 48 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_OUTPUT"> + <summary> + The parameter type for the output transformation: 63 + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.GetParameters"> + <summary> + Obtains a map of type (int) to value (byte[]) for the parameters tracked in this object. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.GetKey"> + <summary> + Obtains the value of the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY">key parameter</see>, or <code>null</code> if not + set. + </summary> + <returns>The key.</returns> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.GetPersonalisation"> + <summary> + Obtains the value of the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_PERSONALISATION">personalisation parameter</see>, or + <code>null</code> if not set. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.GetPublicKey"> + <summary> + Obtains the value of the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_PUBLIC_KEY">public key parameter</see>, or + <code>null</code> if not set. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.GetKeyIdentifier"> + <summary> + Obtains the value of the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY_IDENTIFIER">key identifier parameter</see>, or + <code>null</code> if not set. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.GetNonce"> + <summary> + Obtains the value of the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_NONCE">nonce parameter</see>, or <code>null</code> if + not set. + </summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder"> + <summary> + A builder for <see cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/>. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.Set(System.Int32,System.Byte[])"> + <summary> + Sets a parameters to apply to the Skein hash function. + </summary> + <remarks> + Parameter types must be in the range 0,5..62, and cannot use the value 48 + (reserved for message body). + <p/> + Parameters with type < 48 are processed before + the message content, parameters with type > 48 + are processed after the message and prior to output. + </remarks> + <param name="type">the type of the parameter, in the range 5..62.</param> + <param name="value">the byte sequence of the parameter.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetKey(System.Byte[])"> + <summary> + Sets the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY"/> parameter. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetPersonalisation(System.Byte[])"> + <summary> + Sets the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_PERSONALISATION"/> parameter. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetPersonalisation(System.DateTime,System.String,System.String)"> + <summary> + Implements the recommended personalisation format for Skein defined in Section 4.11 of + the Skein 1.3 specification. + </summary> + <remarks> + The format is <code>YYYYMMDD email@address distinguisher</code>, encoded to a byte + sequence using UTF-8 encoding. + </remarks> + <param name="date">the date the personalised application of the Skein was defined.</param> + <param name="emailAddress">the email address of the creation of the personalised application.</param> + <param name="distinguisher">an arbitrary personalisation string distinguishing the application.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetPublicKey(System.Byte[])"> + <summary> + Sets the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY_IDENTIFIER"/> parameter. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetKeyIdentifier(System.Byte[])"> + <summary> + Sets the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_KEY_IDENTIFIER"/> parameter. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.SetNonce(System.Byte[])"> + <summary> + Sets the <see cref="F:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.PARAM_TYPE_NONCE"/> parameter. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Parameters.SkeinParameters.Builder.Build"> + <summary> + Constructs a new <see cref="T:Org.BouncyCastle.Crypto.Parameters.SkeinParameters"/> instance with the parameters provided to this + builder. + </summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.Parameters.TweakableBlockCipherParameters"> + <summary> + Parameters for tweakable block ciphers. + </summary> + </member> + <member name="P:Org.BouncyCastle.Crypto.Parameters.TweakableBlockCipherParameters.Key"> + <summary> + Gets the key. + </summary> + <value>the key to use, or <code>null</code> to use the current key.</value> + </member> + <member name="P:Org.BouncyCastle.Crypto.Parameters.TweakableBlockCipherParameters.Tweak"> + <summary> + Gets the tweak value. + </summary> + <value>The tweak to use, or <code>null</code> to use the current tweak.</value> + </member> <member name="T:Org.BouncyCastle.Crypto.Prng.DigestRandomGenerator"> Random generation based on the digest with counter. Calling AddSeedMaterial will always increase the entropy of the hash. @@ -12723,6 +13911,14 @@ The Digital Signature Algorithm - as described in "Handbook of Applied Cryptography", pages 452 - 453. </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.DsaSigner.#ctor"> + Default configuration, random K values. + </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.DsaSigner.#ctor(Org.BouncyCastle.Crypto.Signers.IDsaKCalculator)"> + Configuration with an alternate, possibly deterministic calculator of K. + + @param kCalculator a K value calculator. + </member> <member name="M:Org.BouncyCastle.Crypto.Signers.DsaSigner.GenerateSignature(System.Byte[])"> Generate a signature for the given message using the key we were initialised with. For conventional DSA the message should be a SHA-1 @@ -12738,6 +13934,14 @@ <member name="T:Org.BouncyCastle.Crypto.Signers.ECDsaSigner"> EC-DSA as described in X9.62 </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.ECDsaSigner.#ctor"> + Default configuration, random K values. + </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.ECDsaSigner.#ctor(Org.BouncyCastle.Crypto.Signers.IDsaKCalculator)"> + Configuration with an alternate, possibly deterministic calculator of K. + + @param kCalculator a K value calculator. + </member> <member name="M:Org.BouncyCastle.Crypto.Signers.ECDsaSigner.GenerateSignature(System.Byte[])"> Generate a signature for the given message using the key we were initialised with. For conventional DSA the message should be a SHA-1 @@ -12843,6 +14047,40 @@ the passed in message for standard Gost3410 the message should be a Gost3411 hash of the real message to be verified. </member> + <member name="T:Org.BouncyCastle.Crypto.Signers.HMacDsaKCalculator"> + A deterministic K calculator based on the algorithm in section 3.2 of RFC 6979. + </member> + <member name="T:Org.BouncyCastle.Crypto.Signers.IDsaKCalculator"> + Interface define calculators of K values for DSA/ECDSA. + </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.IDsaKCalculator.Init(Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Security.SecureRandom)"> + Non-deterministic initialiser. + + @param n the order of the DSA group. + @param random a source of randomness. + </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.IDsaKCalculator.Init(Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.BigInteger,System.Byte[])"> + Deterministic initialiser. + + @param n the order of the DSA group. + @param d the DSA private value. + @param message the message being signed. + </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.IDsaKCalculator.NextK"> + Return the next valid value of K. + + @return a K value. + </member> + <member name="P:Org.BouncyCastle.Crypto.Signers.IDsaKCalculator.IsDeterministic"> + Return true if this calculator is deterministic, false otherwise. + + @return true if deterministic, otherwise false. + </member> + <member name="M:Org.BouncyCastle.Crypto.Signers.HMacDsaKCalculator.#ctor(Org.BouncyCastle.Crypto.IDigest)"> + Base constructor. + + @param digest digest to build the HMAC on. + </member> <member name="T:Org.BouncyCastle.Crypto.Signers.Iso9796d2PssSigner"> <summary> ISO9796-2 - mechanism using a hash function with recovery (scheme 2 and 3). <p> @@ -13100,36 +14338,507 @@ @return the name of the algorithm we are wrapping. </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.AlertDescription"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAgreementCredentials.GenerateAgreement(Org.BouncyCastle.Crypto.AsymmetricKeyParameter)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.AbstractTlsAgreementCredentials.GenerateAgreement(Org.BouncyCastle.Crypto.AsymmetricKeyParameter)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsCipherFactory.CreateCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.AbstractTlsCipherFactory.CreateCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.ShouldUseGmtUnixTime"> <summary> - RFC 2246 7.2 + draft-mathewson-no-gmtunixtime-00 2. "If existing users of a TLS implementation may rely on + gmt_unix_time containing the current time, we recommend that implementors MAY provide the + ability to set gmt_unix_time as an option only, off by default." </summary> + <returns> + <code>true</code> if the current time should be used in the gmt_unix_time field of + Random, or <code>false</code> if gmt_unix_time should contain a cryptographically + random value. + </returns> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.AlertLevel"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.NotifySecureRenegotiation(System.Boolean)"> + <summary> + Report whether the server supports secure renegotiation + </summary> + <remarks> + The protocol handler automatically processes the relevant extensions + </remarks> + <param name="secureRenegotiation"> + A <see cref="T:System.Boolean"/>, true if the server supports secure renegotiation + </param> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.GetCompression"> + <summary> + Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCompression"/> to handle record compression. + </summary> + <returns>A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCompression"/></returns> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.GetCipher"> + <summary> + Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCipher"/> to use for encryption/decryption. + </summary> + <returns>A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCipher"/></returns> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.NotifyAlertRaised(System.Byte,System.Byte,System.String,System.Exception)"> + <summary>This method will be called when an alert is raised by the protocol.</summary> + <param name="alertLevel"><see cref="T:Org.BouncyCastle.Crypto.Tls.AlertLevel"/></param> + <param name="alertDescription"><see cref="T:Org.BouncyCastle.Crypto.Tls.AlertDescription"/></param> + <param name="message">A human-readable message explaining what caused this alert. May be null.</param> + <param name="cause">The <c>Exception</c> that caused this alert to be raised. May be null.</param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.NotifyAlertReceived(System.Byte,System.Byte)"> + <summary>This method will be called when an alert is received from the remote peer.</summary> + <param name="alertLevel"><see cref="T:Org.BouncyCastle.Crypto.Tls.AlertLevel"/></param> + <param name="alertDescription"><see cref="T:Org.BouncyCastle.Crypto.Tls.AlertDescription"/></param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsPeer.NotifyHandshakeComplete"> + <summary>Notifies the peer that the handshake has been successfully completed.</summary> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.Init(Org.BouncyCastle.Crypto.Tls.TlsClientContext)"> + <summary> + Called at the start of a new TLS session, before any other methods. + </summary> + <param name="context"> + A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler"/> + </param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetSessionToResume"> + <summary>Return the session this client wants to resume, if any.</summary> + <remarks>Note that the peer's certificate chain for the session (if any) may need to be periodically revalidated.</remarks> + <returns> + A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsSession"/> representing the resumable session to be used for this connection, + or null to use a new session. + </returns> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCipherSuites"> + <summary> + Get the list of cipher suites that this client supports. + </summary> + <returns> + An array of <see cref="T:Org.BouncyCastle.Crypto.Tls.CipherSuite"/> values, each specifying a supported cipher suite. + </returns> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCompressionMethods"> <summary> - RFC 2246 7.2 + Get the list of compression methods that this client supports. + </summary> + <returns> + An array of <see cref="T:Org.BouncyCastle.Crypto.Tls.CompressionMethod"/> values, each specifying a supported compression method. + </returns> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetClientExtensions"> + <summary> + Get the (optional) table of client extensions to be included in (extended) client hello. + </summary> + <returns> + A <see cref="T:System.Collections.IDictionary"/> (Int32 -> byte[]). May be null. + </returns> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifyServerVersion(Org.BouncyCastle.Crypto.Tls.ProtocolVersion)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySessionID(System.Byte[])"> + <summary> + Notifies the client of the session_id sent in the ServerHello. </summary> + <param name="sessionID">An array of <see cref="T:System.Byte"/></param> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.AlwaysValidVerifyer"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySelectedCipherSuite(System.Int32)"> + <summary> + Report the cipher suite that was selected by the server. + </summary> <remarks> - A certificate verifyer, that will always return true. - <pre> - DO NOT USE THIS FILE UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING. - </pre> + The protocol handler validates this value against the offered cipher suites + <seealso cref="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCipherSuites"/> + </remarks> + <param name="selectedCipherSuite"> + A <see cref="T:Org.BouncyCastle.Crypto.Tls.CipherSuite"/> + </param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySelectedCompressionMethod(System.Byte)"> + <summary> + Report the compression method that was selected by the server. + </summary> + <remarks> + The protocol handler validates this value against the offered compression methods + <seealso cref="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCompressionMethods"/> + </remarks> + <param name="selectedCompressionMethod"> + A <see cref="T:Org.BouncyCastle.Crypto.Tls.CompressionMethod"/> + </param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.ProcessServerExtensions(System.Collections.IDictionary)"> + <summary> + Report the extensions from an extended server hello. + </summary> + <remarks> + Will only be called if we returned a non-null result from <see cref="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetClientExtensions"/>. + </remarks> + <param name="serverExtensions"> + A <see cref="T:System.Collections.IDictionary"/> (Int32 -> byte[]) + </param> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.ProcessServerSupplementalData(System.Collections.IList)"> + <param name="serverSupplementalData">A <see cref="T:System.Collections.IList">list</see> of <see cref="T:Org.BouncyCastle.Crypto.Tls.SupplementalDataEntry"/></param> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetKeyExchange"> + <summary> + Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange"/> to negotiate the key exchange + part of the protocol. + </summary> + <returns> + A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange"/> + </returns> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetAuthentication"> + <summary> + Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsAuthentication"/> to handle authentication + part of the protocol. + </summary> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetClientSupplementalData"> + <returns>A <see cref="T:System.Collections.IList">list</see> of <see cref="T:Org.BouncyCastle.Crypto.Tls.SupplementalDataEntry"/></returns> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifyNewSessionTicket(Org.BouncyCastle.Crypto.Tls.NewSessionTicket)"> + <summary>RFC 5077 3.3. NewSessionTicket Handshake Message</summary> + <remarks> + This method will be called (only) when a NewSessionTicket handshake message is received. The + ticket is opaque to the client and clients MUST NOT examine the ticket under the assumption + that it complies with e.g. <i>RFC 5077 4. Recommended Ticket Construction</i>. + </remarks> + <param name="newSessionTicket">The <see cref="T:Org.BouncyCastle.Crypto.Tls.NewSessionTicket">ticket</see></param> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.AbstractTlsClient.ClientHelloRecordLayerVersion"> + RFC 5246 E.1. "TLS clients that wish to negotiate with older servers MAY send any value + {03,XX} as the record layer version number. Typical values would be {03,00}, the lowest + version number supported by the client, and the value of ClientHello.client_version. No + single value will guarantee interoperability with all old servers, but this is a complex + topic beyond the scope of this document." + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsContext.ExportKeyingMaterial(System.String,System.Byte[],System.Int32)"> + Export keying material according to RFC 5705: "Keying Material Exporters for TLS". + + @param asciiLabel indicates which application will use the exported keys. + @param context_value allows the application using the exporter to mix its own data with the TLS PRF for + the exporter output. + @param length the number of bytes to generate + @return a pseudorandom bit string of 'length' bytes generated from the master_secret. + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.TlsContext.ResumableSession"> + Used to get the resumable session, if any, used by this connection. Only available after the + handshake has successfully completed. + + @return A {@link TlsSession} representing the resumable session used by this connection, or + null if no resumable session available. + @see TlsPeer#NotifyHandshakeComplete() + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsEncryptionCredentials.DecryptPreMasterSecret(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.AbstractTlsEncryptionCredentials.DecryptPreMasterSecret(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange"> + <summary> + A generic interface for key exchange implementations in (D)TLS. + </summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.SkipServerCredentials"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessServerCredentials(Org.BouncyCastle.Crypto.Tls.TlsCredentials)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessServerCertificate(Org.BouncyCastle.Crypto.Tls.Certificate)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.GenerateServerKeyExchange"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.SkipServerKeyExchange"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessServerKeyExchange(System.IO.Stream)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ValidateCertificateRequest(Org.BouncyCastle.Crypto.Tls.CertificateRequest)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.SkipClientCredentials"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessClientCredentials(Org.BouncyCastle.Crypto.Tls.TlsCredentials)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessClientCertificate(Org.BouncyCastle.Crypto.Tls.Certificate)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.GenerateClientKeyExchange(System.IO.Stream)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessClientKeyExchange(System.IO.Stream)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.GeneratePremasterSecret"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.NotifyClientVersion(Org.BouncyCastle.Crypto.Tls.ProtocolVersion)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.NotifyOfferedCipherSuites(System.Int32[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.NotifyOfferedCompressionMethods(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.ProcessClientExtensions(System.Collections.IDictionary)"> + <param name="clientExtensions">A <see cref="T:System.Collections.IDictionary"/> (Int32 -> byte[]). Will never be null.</param> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetServerVersion"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetSelectedCipherSuite"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetSelectedCompressionMethod"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetServerExtensions"> + <summary> + Get the (optional) table of server extensions to be included in (extended) server hello. + </summary> + <returns> + A <see cref="T:System.Collections.IDictionary"/> (Int32 -> byte[]). May be null. + </returns> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetServerSupplementalData"> + <returns> + A <see cref="T:System.Collections.IList"/> (<see cref="T:Org.BouncyCastle.Crypto.Tls.SupplementalDataEntry"/>). May be null. + </returns> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetCredentials"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetCertificateStatus"> + <remarks> + This method will be called (only) if the server included an extension of type + "status_request" with empty "extension_data" in the extended server hello. See <i>RFC 3546 + 3.6. Certificate Status Request</i>. If a non-null <see cref="T:Org.BouncyCastle.Crypto.Tls.CertificateStatus"/> is returned, it + is sent to the client as a handshake message of type "certificate_status". </remarks> + <returns>A <see cref="T:Org.BouncyCastle.Crypto.Tls.CertificateStatus"/> to be sent to the client (or null for none).</returns> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetKeyExchange"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetCertificateRequest"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.ICertificateVerifyer"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.ProcessClientSupplementalData(System.Collections.IList)"> + <param name="clientSupplementalData"><see cref="T:System.Collections.IList"/> (<see cref="T:Org.BouncyCastle.Crypto.Tls.SupplementalDataEntry"/>)</param> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.NotifyClientCertificate(Org.BouncyCastle.Crypto.Tls.Certificate)"> + <summary> + Called by the protocol handler to report the client certificate, only if <c>GetCertificateRequest</c> + returned non-null. + </summary> + <remarks>Note: this method is responsible for certificate verification and validation.</remarks> + <param name="clientCertificate">the effective client certificate (may be an empty chain).</param> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServer.GetNewSessionTicket"> + <summary>RFC 5077 3.3. NewSessionTicket Handshake Message.</summary> <remarks> - This should be implemented by any class which can find out, if a given - certificate chain is being accepted by an client. + This method will be called (only) if a NewSessionTicket extension was sent by the server. See + <i>RFC 5077 4. Recommended Ticket Construction</i> for recommended format and protection. </remarks> + <returns>The <see cref="T:Org.BouncyCastle.Crypto.Tls.NewSessionTicket">ticket</see>)</returns> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsSignerCredentials.GenerateCertificateSignature(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.AbstractTlsSignerCredentials.GenerateCertificateSignature(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.ICertificateVerifyer.IsValid(Org.BouncyCastle.Asn1.X509.X509CertificateStructure[])"> - <param name="certs">The certs, which are part of the chain.</param> - <returns>True, if the chain is accepted, false otherwise</returns> + <member name="T:Org.BouncyCastle.Crypto.Tls.AlertDescription"> + <summary> + RFC 5246 7.2 + </summary> + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.close_notify"> + This message notifies the recipient that the sender will not send any more messages on this + connection. Note that as of TLS 1.1, failure to properly close a connection no longer + requires that a session not be resumed. This is a change from TLS 1.0 ("The session becomes + unresumable if any connection is terminated without proper close_notify messages with level + equal to warning.") to conform with widespread implementation practice. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.unexpected_message"> + An inappropriate message was received. This alert is always fatal and should never be + observed in communication between proper implementations. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.bad_record_mac"> + This alert is returned if a record is received with an incorrect MAC. This alert also MUST be + returned if an alert is sent because a TLSCiphertext decrypted in an invalid way: either it + wasn't an even multiple of the block length, or its padding values, when checked, weren't + correct. This message is always fatal and should never be observed in communication between + proper implementations (except when messages were corrupted in the network). + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.decryption_failed"> + This alert was used in some earlier versions of TLS, and may have permitted certain attacks + against the CBC mode [CBCATT]. It MUST NOT be sent by compliant implementations. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.record_overflow"> + A TLSCiphertext record was received that had a length more than 2^14+2048 bytes, or a record + decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always + fatal and should never be observed in communication between proper implementations (except + when messages were corrupted in the network). + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.decompression_failure"> + The decompression function received improper input (e.g., data that would expand to excessive + length). This message is always fatal and should never be observed in communication between + proper implementations. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.handshake_failure"> + Reception of a handshake_failure alert message indicates that the sender was unable to + negotiate an acceptable set of security parameters given the options available. This is a + fatal error. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.no_certificate"> + This alert was used in SSLv3 but not any version of TLS. It MUST NOT be sent by compliant + implementations. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.bad_certificate"> + A certificate was corrupt, contained signatures that did not verify correctly, etc. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.unsupported_certificate"> + A certificate was of an unsupported type. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.certificate_revoked"> + A certificate was revoked by its signer. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.certificate_expired"> + A certificate has expired or is not currently valid. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.certificate_unknown"> + Some other (unspecified) issue arose in processing the certificate, rendering it + unacceptable. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.illegal_parameter"> + A field in the handshake was out of range or inconsistent with other fields. This message is + always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.unknown_ca"> + A valid certificate chain or partial chain was received, but the certificate was not accepted + because the CA certificate could not be located or couldn't be matched with a known, trusted + CA. This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.access_denied"> + A valid certificate was received, but when access control was applied, the sender decided not + to proceed with negotiation. This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.decode_error"> + A message could not be decoded because some field was out of the specified range or the + length of the message was incorrect. This message is always fatal and should never be + observed in communication between proper implementations (except when messages were corrupted + in the network). + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.decrypt_error"> + A handshake cryptographic operation failed, including being unable to correctly verify a + signature or validate a Finished message. This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.export_restriction"> + This alert was used in some earlier versions of TLS. It MUST NOT be sent by compliant + implementations. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.protocol_version"> + The protocol version the client has attempted to negotiate is recognized but not supported. + (For example, old protocol versions might be avoided for security reasons.) This message is + always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.insufficient_security"> + Returned instead of handshake_failure when a negotiation has failed specifically because the + server requires ciphers more secure than those supported by the client. This message is + always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.internal_error"> + An internal error unrelated to the peer or the correctness of the protocol (such as a memory + allocation failure) makes it impossible to continue. This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.user_canceled"> + This handshake is being canceled for some reason unrelated to a protocol failure. If the user + cancels an operation after the handshake is complete, just closing the connection by sending + a close_notify is more appropriate. This alert should be followed by a close_notify. This + message is generally a warning. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.no_renegotiation"> + Sent by the client in response to a hello request or by the server in response to a client + hello after initial handshaking. Either of these would normally lead to renegotiation; when + that is not appropriate, the recipient should respond with this alert. At that point, the + original requester can decide whether to proceed with the connection. One case where this + would be appropriate is where a server has spawned a process to satisfy a request; the + process might receive security parameters (key length, authentication, etc.) at startup, and + it might be difficult to communicate changes to these parameters after that point. This + message is always a warning. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.unsupported_extension"> + Sent by clients that receive an extended server hello containing an extension that they did + not put in the corresponding client hello. This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.certificate_unobtainable"> + This alert is sent by servers who are unable to retrieve a certificate chain from the URL + supplied by the client (see Section 3.3). This message MAY be fatal - for example if client + authentication is required by the server for the handshake to continue and the server is + unable to retrieve the certificate chain, it may send a fatal alert. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.unrecognized_name"> + This alert is sent by servers that receive a server_name extension request, but do not + recognize the server name. This message MAY be fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.bad_certificate_status_response"> + This alert is sent by clients that receive an invalid certificate status response (see + Section 3.6). This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.bad_certificate_hash_value"> + This alert is sent by servers when a certificate hash does not match a client provided + certificate_hash. This message is always fatal. + </member> + <member name="F:Org.BouncyCastle.Crypto.Tls.AlertDescription.unknown_psk_identity"> + If the server does not recognize the PSK identity, it MAY respond with an + "unknown_psk_identity" alert message. + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.AlertLevel"> + <summary> + RFC 5246 7.2 + </summary> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.AlwaysValidVerifyer.IsValid(Org.BouncyCastle.Asn1.X509.X509CertificateStructure[])"> - <summary>Return true.</summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.BulkCipherAlgorithm"> + <summary>RFC 2246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.ByteQueue"> <remarks> @@ -13139,7 +14848,7 @@ </p> </remarks> </member> - <member name="F:Org.BouncyCastle.Crypto.Tls.ByteQueue.InitBufSize"> + <member name="F:Org.BouncyCastle.Crypto.Tls.ByteQueue.DefaultCapacity"> The initial size for our buffer. </member> <member name="M:Org.BouncyCastle.Crypto.Tls.ByteQueue.NextTwoPow(System.Int32)"> @@ -13175,216 +14884,273 @@ <summary>The number of bytes which are available in this buffer.</summary> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.Certificate"> - A representation for a certificate chain. + Parsing and encoding of a <i>Certificate</i> struct from RFC 4346. + <p/> + <pre> + opaque ASN.1Cert<2^24-1>; + + struct { + ASN.1Cert certificate_list<0..2^24-1>; + } Certificate; + </pre> + + @see Org.BouncyCastle.Asn1.X509.X509CertificateStructure </member> - <member name="F:Org.BouncyCastle.Crypto.Tls.Certificate.certs"> + <member name="F:Org.BouncyCastle.Crypto.Tls.Certificate.mCertificateList"> The certificates. </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.Certificate.GetCertificateList"> + @return an array of {@link org.bouncycastle.asn1.x509.Certificate} representing a certificate + chain. + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.Certificate.Encode(System.IO.Stream)"> + Encode this {@link Certificate} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + </member> <member name="M:Org.BouncyCastle.Crypto.Tls.Certificate.Parse(System.IO.Stream)"> - Parse the ServerCertificate message. + Parse a {@link Certificate} from a {@link Stream}. - @param inStr The stream where to parse from. - @return A Certificate object with the certs, the server has sended. - @throws IOException If something goes wrong during parsing. + @param input the {@link Stream} to parse from. + @return a {@link Certificate} object. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.Certificate.Encode(System.IO.Stream)"> - Encodes version of the ClientCertificate message + <member name="P:Org.BouncyCastle.Crypto.Tls.Certificate.IsEmpty"> + @return <code>true</code> if this certificate chain contains no certificates, or + <code>false</code> otherwise. + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.CertificateRequest"> + Parsing and encoding of a <i>CertificateRequest</i> struct from RFC 4346. + <p/> + <pre> + struct { + ClientCertificateType certificate_types<1..2^8-1>; + DistinguishedName certificate_authorities<3..2^16-1> + } CertificateRequest; + </pre> + + @see ClientCertificateType + @see X509Name + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateRequest.#ctor(System.Byte[],System.Collections.IList,System.Collections.IList)"> + @param certificateTypes see {@link ClientCertificateType} for valid constants. + @param certificateAuthorities an {@link IList} of {@link X509Name}. + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateRequest.Encode(System.IO.Stream)"> + Encode this {@link CertificateRequest} to a {@link Stream}. - @param outStr stream to write the message to - @throws IOException If something goes wrong + @param output the {@link Stream} to encode to. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.Certificate.#ctor(Org.BouncyCastle.Asn1.X509.X509CertificateStructure[])"> - Private constructor from a cert array. + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateRequest.Parse(Org.BouncyCastle.Crypto.Tls.TlsContext,System.IO.Stream)"> + Parse a {@link CertificateRequest} from a {@link Stream}. - @param certs The certs the chain should contain. + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link CertificateRequest} object. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.Certificate.GetCerts"> - <returns>An array which contains the certs, this chain contains.</returns> + <member name="P:Org.BouncyCastle.Crypto.Tls.CertificateRequest.CertificateTypes"> + @return an array of certificate types + @see {@link ClientCertificateType} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.CertificateRequest.SupportedSignatureAlgorithms"> + @return an {@link IList} of {@link SignatureAndHashAlgorithm} (or null before TLS 1.2). </member> <member name="P:Org.BouncyCastle.Crypto.Tls.CertificateRequest.CertificateAuthorities"> - <returns>A <see cref="T:System.Collections.IList"/> of X509Name</returns> + @return an {@link IList} of {@link X509Name} + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateStatus.Encode(System.IO.Stream)"> + Encode this {@link CertificateStatus} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateStatus.Parse(System.IO.Stream)"> + Parse a {@link CertificateStatus} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link CertificateStatus} object. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateStatusRequest.Encode(System.IO.Stream)"> + Encode this {@link CertificateStatusRequest} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateStatusRequest.Parse(System.IO.Stream)"> + Parse a {@link CertificateStatusRequest} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link CertificateStatusRequest} object. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateUrl.#ctor(System.Byte,System.Collections.IList)"> + @param type + see {@link CertChainType} for valid constants. + @param urlAndHashList + a {@link IList} of {@link UrlAndHash}. + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateUrl.Encode(System.IO.Stream)"> + Encode this {@link CertificateUrl} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.CertificateUrl.parse(Org.BouncyCastle.Crypto.Tls.TlsContext,System.IO.Stream)"> + Parse a {@link CertificateUrl} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link CertificateUrl} object. + @throws IOException + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.CertificateUrl.Type"> + @return {@link CertChainType} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.CertificateUrl.UrlAndHashList"> + @return an {@link IList} of {@link UrlAndHash} + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsCipher.EncodePlaintext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsCipher.DecodeCiphertext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.Chacha20Poly1305.#ctor(Org.BouncyCastle.Crypto.Tls.TlsContext)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.Chacha20Poly1305.EncodePlaintext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.Chacha20Poly1305.DecodeCiphertext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.Chacha20Poly1305.GetAdditionalData(System.Int64,System.Byte,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.CipherSuite"> <summary> RFC 2246 A.5 </summary> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.ClientCertificateType"> - <summary> - RFC 2246 7.4.4 - </summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.CipherType"> + <summary>RFC 2246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.CombinedHash"> - <remarks>A combined hash, which implements md5(m) || sha1(m).</remarks> - </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.CombinedHash.GetByteLength"> - <seealso cref="M:Org.BouncyCastle.Crypto.IDigest.GetByteLength"/> - </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.CombinedHash.GetDigestSize"> - <seealso cref="M:Org.BouncyCastle.Crypto.IDigest.GetDigestSize"/> - </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.CombinedHash.Update(System.Byte)"> - <seealso cref="M:Org.BouncyCastle.Crypto.IDigest.Update(System.Byte)"/> + A combined hash, which implements md5(m) || sha1(m). </member> <member name="M:Org.BouncyCastle.Crypto.Tls.CombinedHash.BlockUpdate(System.Byte[],System.Int32,System.Int32)"> - <seealso cref="M:Org.BouncyCastle.Crypto.IDigest.BlockUpdate(System.Byte[],System.Int32,System.Int32)"/> + @see org.bouncycastle.crypto.Digest#update(byte[], int, int) </member> <member name="M:Org.BouncyCastle.Crypto.Tls.CombinedHash.DoFinal(System.Byte[],System.Int32)"> - <seealso cref="M:Org.BouncyCastle.Crypto.IDigest.DoFinal(System.Byte[],System.Int32)"/> + @see org.bouncycastle.crypto.Digest#doFinal(byte[], int) </member> <member name="M:Org.BouncyCastle.Crypto.Tls.CombinedHash.Reset"> - <seealso cref="M:Org.BouncyCastle.Crypto.IDigest.Reset"/> - </member> - <member name="P:Org.BouncyCastle.Crypto.Tls.CombinedHash.AlgorithmName"> - <seealso cref="P:Org.BouncyCastle.Crypto.IDigest.AlgorithmName"/> + @see org.bouncycastle.crypto.Digest#reset() </member> <member name="T:Org.BouncyCastle.Crypto.Tls.CompressionMethod"> <summary> RFC 2246 6.1 </summary> </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.ConnectionEnd"> + <summary>RFC 2246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> + </member> <member name="T:Org.BouncyCastle.Crypto.Tls.ContentType"> - <summary> RFC 2246 6.2.1 - </summary> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAgreementCredentials.GenerateAgreement(Org.BouncyCastle.Crypto.AsymmetricKeyParameter)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsAgreementCredentials.GenerateAgreement(Org.BouncyCastle.Crypto.AsymmetricKeyParameter)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsCipherFactory.CreateCipher(Org.BouncyCastle.Crypto.Tls.TlsClientContext,Org.BouncyCastle.Crypto.Tls.EncryptionAlgorithm,Org.BouncyCastle.Crypto.Tls.DigestAlgorithm)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateAesCipher(Org.BouncyCastle.Crypto.Tls.TlsClientContext,System.Int32,Org.BouncyCastle.Crypto.Tls.DigestAlgorithm)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateAESCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateDesEdeCipher(Org.BouncyCastle.Crypto.Tls.TlsClientContext,System.Int32,Org.BouncyCastle.Crypto.Tls.DigestAlgorithm)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateCamelliaCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateDigest(Org.BouncyCastle.Crypto.Tls.DigestAlgorithm)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateChaCha20Poly1305(Org.BouncyCastle.Crypto.Tls.TlsContext)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.Init(Org.BouncyCastle.Crypto.Tls.TlsClientContext)"> - <summary> - Called at the start of a new TLS session, before any other methods. - </summary> - <param name="context"> - A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler"/> - </param> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateCipher_Aes_Ccm(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCipherSuites"> - <summary> - Get the list of cipher suites that this client supports. - </summary> - <returns> - An array of <see cref="T:Org.BouncyCastle.Crypto.Tls.CipherSuite"/>, each specifying a supported cipher suite. - </returns> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateCipher_Aes_Gcm(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCompressionMethods"> - <summary> - Get the list of compression methods that this client supports. - </summary> - <returns> - An array of <see cref="T:Org.BouncyCastle.Crypto.Tls.CompressionMethod"/>, each specifying a supported compression method. - </returns> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateCipher_Camellia_Gcm(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetClientExtensions"> - <summary> - Get the (optional) table of client extensions to be included in (extended) client hello. - </summary> - <returns> - A <see cref="T:System.Collections.IDictionary"/> (<see cref="T:Org.BouncyCastle.Crypto.Tls.ExtensionType"/> -> byte[]). May be null. - </returns> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateDesEdeCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySessionID(System.Byte[])"> - <summary> - Reports the session ID once it has been determined. - </summary> - <param name="sessionID"> - A <see cref="T:System.Byte"/> - </param> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateNullCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySelectedCipherSuite(Org.BouncyCastle.Crypto.Tls.CipherSuite)"> - <summary> - Report the cipher suite that was selected by the server. - </summary> - <remarks> - The protocol handler validates this value against the offered cipher suites - <seealso cref="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCipherSuites"/> - </remarks> - <param name="selectedCipherSuite"> - A <see cref="T:Org.BouncyCastle.Crypto.Tls.CipherSuite"/> - </param> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateRC4Cipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySelectedCompressionMethod(Org.BouncyCastle.Crypto.Tls.CompressionMethod)"> - <summary> - Report the compression method that was selected by the server. - </summary> - <remarks> - The protocol handler validates this value against the offered compression methods - <seealso cref="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCompressionMethods"/> - </remarks> - <param name="selectedCompressionMethod"> - A <see cref="T:Org.BouncyCastle.Crypto.Tls.CompressionMethod"/> - </param> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateSalsa20Cipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32,System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.NotifySecureRenegotiation(System.Boolean)"> - <summary> - Report whether the server supports secure renegotiation - </summary> - <remarks> - The protocol handler automatically processes the relevant extensions - </remarks> - <param name="secureRenegotiation"> - A <see cref="T:System.Boolean"/>, true if the server supports secure renegotiation - </param> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateSeedCipher(Org.BouncyCastle.Crypto.Tls.TlsContext,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.ProcessServerExtensions(System.Collections.IDictionary)"> - <summary> - Report the extensions from an extended server hello. - </summary> - <remarks> - Will only be called if we returned a non-null result from <see cref="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetClientExtensions"/>. - </remarks> - <param name="serverExtensions"> - A <see cref="T:System.Collections.IDictionary"/> (<see cref="T:Org.BouncyCastle.Crypto.Tls.ExtensionType"/> -> byte[]) - </param> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsCipherFactory.CreateHMacDigest(System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetKeyExchange"> - <summary> - Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange"/> to negotiate the key exchange - part of the protocol. - </summary> - <returns> - A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange"/> - </returns> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsEncryptionCredentials.DecryptPreMasterSecret(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetAuthentication"> - <summary> - Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsAuthentication"/> to handle authentication - part of the protocol. - </summary> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.DefaultTlsSignerCredentials.GenerateCertificateSignature(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCompression"> - <summary> - Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCompression"/> to handle record compression. - </summary> - <exception cref="T:System.IO.IOException"/> + <member name="T:Org.BouncyCastle.Crypto.Tls.DeferredHash"> + Buffers input until the hash algorithm is determined. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClient.GetCipher"> - <summary> - Return an implementation of <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCipher"/> to use for encryption/decryption. - </summary> - <returns> - A <see cref="T:Org.BouncyCastle.Crypto.Tls.TlsCipher"/> - </returns> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.DigitallySigned.Encode(System.IO.Stream)"> + Encode this {@link DigitallySigned} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsSignerCredentials.GenerateCertificateSignature(System.Byte[])"> - <exception cref="T:System.IO.IOException"></exception> + <member name="M:Org.BouncyCastle.Crypto.Tls.DigitallySigned.Parse(Org.BouncyCastle.Crypto.Tls.TlsContext,System.IO.Stream)"> + Parse a {@link DigitallySigned} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link DigitallySigned} object. + @throws IOException + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.DigitallySigned.Algorithm"> + @return a {@link SignatureAndHashAlgorithm} (or null before TLS 1.2). + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.ECBasisType"> + <summary>RFC 4492 5.4. (Errata ID: 2389)</summary> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.ECCurveType"> <summary> @@ -13407,21 +15173,201 @@ RFC 4492 5.1.2 </summary> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.ExtensionType"> - <summary> - RFC 4366 2.3 - </summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.EncryptionAlgorithm"> + <summary>RFC 2246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.HandshakeType"> - <summary> - RFC 2246 7.4 - </summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.ExporterLabel"> + <summary>RFC 5705</summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.HashAlgorithm"> + <summary>RFC 5246 7.4.1.4.1</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.HeartbeatExtension.Encode(System.IO.Stream)"> + Encode this {@link HeartbeatExtension} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.HeartbeatExtension.Parse(System.IO.Stream)"> + Parse a {@link HeartbeatExtension} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link HeartbeatExtension} object. + @throws IOException </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.LegacyTlsAuthentication"> + <member name="M:Org.BouncyCastle.Crypto.Tls.HeartbeatMessage.Encode(Org.BouncyCastle.Crypto.Tls.TlsContext,System.IO.Stream)"> + Encode this {@link HeartbeatMessage} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.HeartbeatMessage.Parse(System.IO.Stream)"> + Parse a {@link HeartbeatMessage} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link HeartbeatMessage} object. + @throws IOException + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.KeyExchangeAlgorithm"> + <summary>RFC 2246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.MacAlgorithm"> + <summary>RFC 2246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.NamedCurve"> <summary> - A temporary class to wrap old CertificateVerifyer stuff for new TlsAuthentication. + RFC 4492 5.1.1 + The named curves defined here are those specified in SEC 2 [13]. Note that many of + these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00 + through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the + client supports arbitrary prime and characteristic-2 curves, respectively (the curve + parameters must be encoded explicitly in ECParameters). </summary> </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.NewSessionTicket.Encode(System.IO.Stream)"> + Encode this {@link NewSessionTicket} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.NewSessionTicket.Parse(System.IO.Stream)"> + Parse a {@link NewSessionTicket} from a {@link Stream}. + + @param input the {@link Stream} to parse from. + @return a {@link NewSessionTicket} object. + @throws IOException + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.OcspStatusRequest"> + RFC 3546 3.6 + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.OcspStatusRequest.#ctor(System.Collections.IList,Org.BouncyCastle.Asn1.X509.X509Extensions)"> + @param responderIDList + an {@link IList} of {@link ResponderID}, specifying the list of trusted OCSP + responders. An empty list has the special meaning that the responders are + implicitly known to the server - e.g., by prior arrangement. + @param requestExtensions + OCSP request extensions. A null value means that there are no extensions. + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.OcspStatusRequest.Encode(System.IO.Stream)"> + Encode this {@link OcspStatusRequest} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.OcspStatusRequest.Parse(System.IO.Stream)"> + Parse a {@link OcspStatusRequest} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return an {@link OcspStatusRequest} object. + @throws IOException + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.OcspStatusRequest.ResponderIDList"> + @return an {@link IList} of {@link ResponderID} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.OcspStatusRequest.RequestExtensions"> + @return OCSP request extensions + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.PrfAlgorithm"> + <summary>RFC 5246</summary> + <remarks> + Note that the values here are implementation-specific and arbitrary. It is recommended not to + depend on the particular values (e.g. serialization). + </remarks> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ProtocolVersion.Get(System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"/> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.RecordStream"> + <summary>An implementation of the TLS 1.0/1.1/1.2 record layer, allowing downgrade to SSLv3.</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.RecordStream.SetRestrictReadVersion(System.Boolean)"> + RFC 5246 E.1. "Earlier versions of the TLS specification were not fully clear on what the + record layer version number (TLSPlaintext.version) should contain when sending ClientHello + (i.e., before it is known which version of the protocol will be employed). Thus, TLS servers + compliant with this specification MUST accept any value {03,XX} as the record layer version + number for ClientHello." + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.SecurityParameters.Entity"> + @return {@link ConnectionEnd} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.SecurityParameters.CipherSuite"> + @return {@link CipherSuite} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.SecurityParameters.CompressionAlgorithm"> + @return {@link CompressionMethod} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.SecurityParameters.PrfAlgorithm"> + @return {@link PRFAlgorithm} + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerDHParams.Encode(System.IO.Stream)"> + Encode this {@link ServerDHParams} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerDHParams.Parse(System.IO.Stream)"> + Parse a {@link ServerDHParams} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link ServerDHParams} object. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerName.Encode(System.IO.Stream)"> + Encode this {@link ServerName} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerName.Parse(System.IO.Stream)"> + Parse a {@link ServerName} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link ServerName} object. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerNameList.#ctor(System.Collections.IList)"> + @param serverNameList an {@link IList} of {@link ServerName}. + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerNameList.Encode(System.IO.Stream)"> + Encode this {@link ServerNameList} to a {@link Stream}. + + @param output + the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.ServerNameList.Parse(System.IO.Stream)"> + Parse a {@link ServerNameList} from a {@link Stream}. + + @param input + the {@link Stream} to parse from. + @return a {@link ServerNameList} object. + @throws IOException + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.ServerNameList.ServerNames"> + @return an {@link IList} of {@link ServerName}. + </member> <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAuthentication.NotifyServerCertificate(Org.BouncyCastle.Crypto.Tls.Certificate)"> <summary> Called by the protocol handler to report the server certificate. @@ -13445,23 +15391,34 @@ </returns> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.LegacyTlsClient"> - <summary> - A temporary class to use LegacyTlsAuthentication - </summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.SignatureAlgorithm"> + RFC 5246 7.4.1.4.1 (in RFC 2246, there were no specific values assigned) </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.NamedCurve"> - <summary> - RFC 4492 5.1.1 - The named curves defined here are those specified in SEC 2 [13]. Note that many of - these curves are also recommended in ANSI X9.62 [7] and FIPS 186-2 [11]. Values 0xFE00 - through 0xFEFF are reserved for private use. Values 0xFF01 and 0xFF02 indicate that the - client supports arbitrary prime and characteristic-2 curves, respectively (the curve - parameters must be encoded explicitly in ECParameters). - </summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.SignatureAndHashAlgorithm"> + RFC 5246 7.4.1.4.1 </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.RecordStream"> - <remarks>An implementation of the TLS 1.0 record layer.</remarks> + <member name="M:Org.BouncyCastle.Crypto.Tls.SignatureAndHashAlgorithm.#ctor(System.Byte,System.Byte)"> + @param hash {@link HashAlgorithm} + @param signature {@link SignatureAlgorithm} + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.SignatureAndHashAlgorithm.Encode(System.IO.Stream)"> + Encode this {@link SignatureAndHashAlgorithm} to a {@link Stream}. + + @param output the {@link Stream} to encode to. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.SignatureAndHashAlgorithm.Parse(System.IO.Stream)"> + Parse a {@link SignatureAndHashAlgorithm} from a {@link Stream}. + + @param input the {@link Stream} to parse from. + @return a {@link SignatureAndHashAlgorithm} object. + @throws IOException + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.SignatureAndHashAlgorithm.Hash"> + @return {@link HashAlgorithm} + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.SignatureAndHashAlgorithm.Signature"> + @return {@link SignatureAlgorithm} </member> <member name="T:Org.BouncyCastle.Crypto.Tls.Ssl3Mac"> HMAC implementation based on original internet draft for HMAC (RFC 2104) @@ -13479,184 +15436,304 @@ <member name="M:Org.BouncyCastle.Crypto.Tls.Ssl3Mac.Reset"> Reset the mac generator. </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsBlockCipher"> - <summary> - A generic TLS 1.0 block cipher. This can be used for AES or 3DES for example. - </summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.SupplementalDataType"> + <summary>RFC 4680</summary> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsCipher.EncodePlaintext(Org.BouncyCastle.Crypto.Tls.ContentType,System.Byte[],System.Int32,System.Int32)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAeadCipher.#ctor(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher,Org.BouncyCastle.Crypto.Modes.IAeadBlockCipher,System.Int32,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsCipher.DecodeCiphertext(Org.BouncyCastle.Crypto.Tls.ContentType,System.Byte[],System.Int32,System.Int32)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAeadCipher.EncodePlaintext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> <exception cref="T:System.IO.IOException"></exception> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsDHKeyExchange"> - <summary> - TLS 1.0 DH key exchange. - </summary> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAeadCipher.DecodeCiphertext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsAeadCipher.GetAdditionalData(System.Int64,System.Byte,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsBlockCipher"> <summary> - A generic interface for key exchange implementations in TLS 1.0. + A generic TLS 1.0-1.2 / SSLv3 block cipher. This can be used for AES or 3DES for example. </summary> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.SkipServerCertificate"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsBlockCipher.#ctor(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.IBlockCipher,Org.BouncyCastle.Crypto.IBlockCipher,Org.BouncyCastle.Crypto.IDigest,Org.BouncyCastle.Crypto.IDigest,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessServerCertificate(Org.BouncyCastle.Crypto.Tls.Certificate)"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsBlockCipher.DecodeCiphertext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.SkipServerKeyExchange"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.ProcessChangeCipherSpec(System.Byte[],System.Int32,System.Int32)"> + This method is called, when a change cipher spec message is received. + + @throws IOException If the message has an invalid content or the handshake is not in the correct + state. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessServerKeyExchange(System.IO.Stream)"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.ReadApplicationData(System.Byte[],System.Int32,System.Int32)"> + Read data from the network. The method will return immediately, if there is still some data + left in the buffer, or block until some application data has been read from the network. + + @param buf The buffer where the data will be copied to. + @param offset The position where the data will be placed in the buffer. + @param len The maximum number of bytes to read. + @return The number of bytes read. + @throws IOException If something goes wrong during reading data. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ValidateCertificateRequest(Org.BouncyCastle.Crypto.Tls.CertificateRequest)"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.WriteData(System.Byte[],System.Int32,System.Int32)"> + Send some application data to the remote system. + <p/> + The method will handle fragmentation internally. + + @param buf The buffer with the data. + @param offset The position in the buffer where the data is placed. + @param len The length of the data. + @throws IOException If something goes wrong during sending. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.SkipClientCredentials"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.FailWithError(System.Byte,System.Byte,System.String,System.Exception)"> + Terminate this connection with an alert. Can be used for normal closure too. + + @param alertLevel + See {@link AlertLevel} for values. + @param alertDescription + See {@link AlertDescription} for values. + @throws IOException + If alert was fatal. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.ProcessClientCredentials(Org.BouncyCastle.Crypto.Tls.TlsCredentials)"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.Close"> + Closes this connection. + + @throws IOException If something goes wrong during closing. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.GenerateClientKeyExchange(System.IO.Stream)"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.AssertEmpty(System.IO.MemoryStream)"> + Make sure the InputStream 'buf' now empty. Fail otherwise. + + @param buf The InputStream to check. + @throws IOException If 'buf' is not empty. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsKeyExchange.GeneratePremasterSecret"> - <exception cref="T:System.IO.IOException"/> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocol.GetCurrentPrfHash(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.Tls.TlsHandshakeHash,System.Byte[])"> + 'sender' only relevant to SSLv3 + </member> + <member name="P:Org.BouncyCastle.Crypto.Tls.TlsProtocol.Stream"> + <summary>The secure bidirectional stream for this connection</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsClientProtocol.Connect(Org.BouncyCastle.Crypto.Tls.TlsClient)"> + Initiates a TLS handshake in the role of client + + @param tlsClient The {@link TlsClient} to use for the handshake. + @throws IOException If handshake was not successful. + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsDHKeyExchange"> + <summary>(D)TLS DH key exchange.</summary> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.TlsECDheKeyExchange"> - ECDHE key exchange (see RFC 4492) + <summary>(D)TLS ECDHE key exchange (see RFC 4492).</summary> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.TlsECDHKeyExchange"> - ECDH key exchange (see RFC 4492) + <summary>(D)TLS ECDH key exchange (see RFC 4492).</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.AddHeartbeatExtension(System.Collections.IDictionary,Org.BouncyCastle.Crypto.Tls.HeartbeatExtension)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.AddMaxFragmentLengthExtension(System.Collections.IDictionary,System.Byte)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.AddServerNameExtension(System.Collections.IDictionary,Org.BouncyCastle.Crypto.Tls.ServerNameList)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.AddStatusRequestExtension(System.Collections.IDictionary,Org.BouncyCastle.Crypto.Tls.CertificateStatusRequest)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.GetHeartbeatExtension(System.Collections.IDictionary)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.GetMaxFragmentLengthExtension(System.Collections.IDictionary)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.GetServerNameExtension(System.Collections.IDictionary)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.GetStatusRequestExtension(System.Collections.IDictionary)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.HasEncryptThenMacExtension(System.Collections.IDictionary)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.HasTruncatedHMacExtension(System.Collections.IDictionary)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.CreateHeartbeatExtension(Org.BouncyCastle.Crypto.Tls.HeartbeatExtension)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.CreateMaxFragmentLengthExtension(System.Byte)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.CreateServerNameExtension(Org.BouncyCastle.Crypto.Tls.ServerNameList)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.CreateStatusRequestExtension(Org.BouncyCastle.Crypto.Tls.CertificateStatusRequest)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadEmptyExtensionData(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadEncryptThenMacExtension(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadHeartbeatExtension(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadMaxFragmentLengthExtension(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadServerNameExtension(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadStatusRequestExtension(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsExtensionsUtilities.ReadTruncatedHMacExtension(System.Byte[])"> + <exception cref="T:System.IO.IOException"></exception> </member> <member name="T:Org.BouncyCastle.Crypto.Tls.TlsMac"> - <remarks> - A generic TLS MAC implementation, which can be used with any kind of - IDigest to act as an HMAC. - </remarks> + <summary> + A generic TLS MAC implementation, acting as an HMAC based on some underlying Digest. + </summary> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsMac.#ctor(Org.BouncyCastle.Crypto.IDigest,System.Byte[],System.Int32,System.Int32)"> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsMac.#ctor(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.IDigest,System.Byte[],System.Int32,System.Int32)"> Generate a new instance of an TlsMac. - @param digest The digest to use. - @param key_block A byte-array where the key for this mac is located. - @param offset The number of bytes to skip, before the key starts in the buffer. - @param len The length of the key. - </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsMac.GetMacSecret"> - @return the MAC write secret + @param context the TLS client context + @param digest The digest to use. + @param key A byte-array where the key for this MAC is located. + @param keyOff The number of bytes to skip, before the key starts in the buffer. + @param keyLen The length of the key. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsMac.IncSequenceNumber"> - Increment the current write sequence number - </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsMac.CalculateMac(Org.BouncyCastle.Crypto.Tls.ContentType,System.Byte[],System.Int32,System.Int32)"> - Calculate the mac for some given data. - <p/> - TlsMac will keep track of the sequence number internally. + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsMac.CalculateMac(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + Calculate the MAC for some given data. @param type The message type of the message. @param message A byte-buffer containing the message. @param offset The number of bytes to skip, before the message starts. - @param len The length of the message. - @return A new byte-buffer containing the mac value. + @param length The length of the message. + @return A new byte-buffer containing the MAC value. </member> - <member name="P:Org.BouncyCastle.Crypto.Tls.TlsMac.SequenceNumber"> - @return the current write sequence number + <member name="P:Org.BouncyCastle.Crypto.Tls.TlsMac.MacSecret"> + @return the MAC write secret </member> <member name="P:Org.BouncyCastle.Crypto.Tls.TlsMac.Size"> - @return The Keysize of the mac. + @return The output length of this MAC. </member> <member name="T:Org.BouncyCastle.Crypto.Tls.TlsNullCipher"> <summary> - A NULL cipher suite, for use during handshake. + A NULL CipherSuite, with optional MAC. </summary> </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler"> - <remarks>An implementation of all high level protocols in TLS 1.0.</remarks> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsNullCipher.#ctor(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.IDigest,Org.BouncyCastle.Crypto.IDigest)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.#ctor(System.IO.Stream,System.IO.Stream)"> - <remarks>Both streams can be the same object</remarks> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsNullCipher.EncodePlaintext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsNullCipher.DecodeCiphertext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.#ctor(System.IO.Stream,System.IO.Stream,Org.BouncyCastle.Security.SecureRandom)"> <remarks>Both streams can be the same object</remarks> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.ProcessChangeCipherSpec"> - This method is called, when a change cipher spec message is received. + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsPskKeyExchange"> + <summary>(D)TLS PSK key exchange (RFC 4279).</summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsRsaKeyExchange"> + <summary>(D)TLS and SSLv3 RSA key exchange.</summary> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsRsaUtilities.GenerateEncryptedPreMasterSecret(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.Parameters.RsaKeyParameters,System.IO.Stream)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsServerProtocol.Accept(Org.BouncyCastle.Crypto.Tls.TlsServer)"> + Receives a TLS handshake in the role of server - @throws IOException If the message has an invalid content or the - handshake is not in the correct state. + @param mTlsServer + @throws IOException If handshake was not successful. + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsSrpKeyExchange"> + <summary>(D)TLS SRP key exchange (RFC 5054).</summary> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsSRTPUtils"> + RFC 5764 DTLS Extension to Establish Keys for SRTP. + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsStreamCipher.#ctor(Org.BouncyCastle.Crypto.Tls.TlsContext,Org.BouncyCastle.Crypto.IStreamCipher,Org.BouncyCastle.Crypto.IStreamCipher,Org.BouncyCastle.Crypto.IDigest,Org.BouncyCastle.Crypto.IDigest,System.Int32,System.Boolean)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsStreamCipher.DecodeCiphertext(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.Connect(Org.BouncyCastle.Crypto.Tls.ICertificateVerifyer)"> - <summary>Connects to the remote system.</summary> - <param name="verifyer">Will be used when a certificate is received to verify - that this certificate is accepted by the client.</param> - <exception cref="T:System.IO.IOException">If handshake was not successful</exception> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsStreamCipher.CheckMac(System.Int64,System.Byte,System.Byte[],System.Int32,System.Int32,System.Byte[],System.Int32,System.Int32)"> + <exception cref="T:System.IO.IOException"></exception> + </member> + <member name="T:Org.BouncyCastle.Crypto.Tls.TlsUtilities"> + <remarks>Some helper functions for MicroTLS.</remarks> </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.ReadApplicationData(System.Byte[],System.Int32,System.Int32)"> - Read data from the network. The method will return immediately, if there is - still some data left in the buffer, or block until some application - data has been read from the network. + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsUtilities.AddSignatureAlgorithmsExtension(System.Collections.IDictionary,System.Collections.IList)"> + Add a 'signature_algorithms' extension to existing extensions. - @param buf The buffer where the data will be copied to. - @param offset The position where the data will be placed in the buffer. - @param len The maximum number of bytes to read. - @return The number of bytes read. - @throws IOException If something goes wrong during reading data. + @param extensions A {@link Hashtable} to add the extension to. + @param supportedSignatureAlgorithms {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.WriteData(System.Byte[],System.Int32,System.Int32)"> - Send some application data to the remote system. - <p/> - The method will handle fragmentation internally. + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsUtilities.GetSignatureAlgorithmsExtension(System.Collections.IDictionary)"> + Get a 'signature_algorithms' extension from extensions. - @param buf The buffer with the data. - @param offset The position in the buffer where the data is placed. - @param len The length of the data. - @throws IOException If something goes wrong during sending. + @param extensions A {@link Hashtable} to get the extension from, if it is present. + @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}, or null. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.FailWithError(Org.BouncyCastle.Crypto.Tls.AlertLevel,Org.BouncyCastle.Crypto.Tls.AlertDescription)"> - Terminate this connection with an alert. - <p/> - Can be used for normal closure too. + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsUtilities.CreateSignatureAlgorithmsExtension(System.Collections.IList)"> + Create a 'signature_algorithms' extension value. + + @param supportedSignatureAlgorithms A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}. + @return A byte array suitable for use as an extension value. + @throws IOException + </member> + <member name="M:Org.BouncyCastle.Crypto.Tls.TlsUtilities.ReadSignatureAlgorithmsExtension(System.Byte[])"> + Read 'signature_algorithms' extension data. - @param alertLevel The level of the alert, an be AlertLevel.fatal or AL_warning. - @param alertDescription The exact alert message. - @throws IOException If alert was fatal. + @param extensionData The extension data. + @return A {@link Vector} containing at least 1 {@link SignatureAndHashAlgorithm}. + @throws IOException </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.Close"> - <summary>Closes this connection</summary> - <exception cref="T:System.IO.IOException">If something goes wrong during closing.</exception> + <member name="T:Org.BouncyCastle.Crypto.Tls.UrlAndHash"> + RFC 6066 5. </member> - <member name="M:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.AssertEmpty(System.IO.MemoryStream)"> - Make sure the Stream is now empty. Fail otherwise. + <member name="M:Org.BouncyCastle.Crypto.Tls.UrlAndHash.Encode(System.IO.Stream)"> + Encode this {@link UrlAndHash} to a {@link Stream}. - @param is The Stream to check. - @throws IOException If is is not empty. + @param output the {@link Stream} to encode to. + @throws IOException </member> - <member name="P:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.OutputStream"> - <summary>A Stream which can be used to send data.</summary> + <member name="M:Org.BouncyCastle.Crypto.Tls.UrlAndHash.Parse(Org.BouncyCastle.Crypto.Tls.TlsContext,System.IO.Stream)"> + Parse a {@link UrlAndHash} from a {@link Stream}. + + @param context + the {@link TlsContext} of the current connection. + @param input + the {@link Stream} to parse from. + @return a {@link UrlAndHash} object. + @throws IOException </member> - <member name="P:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.InputStream"> - <summary>A Stream which can be used to read data.</summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.UserMappingType"> + <remarks>RFC 4681</remarks> </member> - <member name="P:Org.BouncyCastle.Crypto.Tls.TlsProtocolHandler.Stream"> - <summary>The secure bidirectional stream for this connection</summary> + <member name="T:Org.BouncyCastle.Crypto.Tls.UseSrtpData"> + RFC 5764 4.1.1 </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsRsaKeyExchange"> - <summary> - TLS 1.0 RSA key exchange. - </summary> + <member name="M:Org.BouncyCastle.Crypto.Tls.UseSrtpData.#ctor(System.Int32[],System.Byte[])"> + @param protectionProfiles see {@link SrtpProtectionProfile} for valid constants. + @param mki valid lengths from 0 to 255. </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsSrpKeyExchange"> - <summary> - TLS 1.1 SRP key exchange. - </summary> + <member name="P:Org.BouncyCastle.Crypto.Tls.UseSrtpData.ProtectionProfiles"> + @return see {@link SrtpProtectionProfile} for valid constants. </member> - <member name="T:Org.BouncyCastle.Crypto.Tls.TlsUtilities"> - <remarks>Some helper fuctions for MicroTLS.</remarks> + <member name="P:Org.BouncyCastle.Crypto.Tls.UseSrtpData.Mki"> + @return valid lengths from 0 to 255. </member> <member name="M:Org.BouncyCastle.Math.BigInteger.AddMagnitudes(System.Int32[],System.Int32[])"> return a = a + b - b preserved. @@ -13688,7 +15765,6 @@ @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 - @param u2Out the return object for the u2 value @return The greatest common divisor of a and b </member> <member name="M:Org.BouncyCastle.Math.BigInteger.Square(System.Int32[],System.Int32[])"> @@ -13700,7 +15776,7 @@ <member name="M:Org.BouncyCastle.Math.BigInteger.GetMQuote"> Calculate mQuote = -m^(-1) mod b with b = 2^32 (32 = word size) </member> - <member name="M:Org.BouncyCastle.Math.BigInteger.MultiplyMonty(System.Int32[],System.Int32[],System.Int32[],System.Int32[],System.Int64)"> + <member name="M:Org.BouncyCastle.Math.BigInteger.MultiplyMonty(System.Int32[],System.Int32[],System.Int32[],System.Int32[],System.UInt32,System.Boolean)"> Montgomery multiplication: a = x * y * R^(-1) mod m <br/> Based algorithm 14.36 of Handbook of Applied Cryptography. @@ -13978,12 +16054,377 @@ <member name="T:Org.BouncyCastle.Math.EC.ECCurve"> <remarks>Base class for an elliptic curve.</remarks> </member> - <member name="M:Org.BouncyCastle.Math.EC.ECCurveBase.DecodePoint(System.Byte[])"> + <member name="M:Org.BouncyCastle.Math.EC.ECCurve.SetPreCompInfo(Org.BouncyCastle.Math.EC.ECPoint,System.String,Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> + Adds <code>PreCompInfo</code> for a point on this curve, under a given name. Used by + <code>ECMultiplier</code>s to save the precomputation for this <code>ECPoint</code> for use + by subsequent multiplication. + + @param point + The <code>ECPoint</code> to store precomputations for. + @param name + A <code>String</code> used to index precomputations of different types. + @param preCompInfo + The values precomputed by the <code>ECMultiplier</code>. + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECCurve.NormalizeAll(Org.BouncyCastle.Math.EC.ECPoint[])"> + 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 + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECCurve.GetMultiplier"> + Sets the default <code>ECMultiplier</code>, unless already set. + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECCurve.DecodePoint(System.Byte[])"> Decode a point on this curve from its ASN.1 encoding. The different encodings are taken account of, including point compression for <code>F<sub>p</sub></code> (X9.62 s 4.2.1 pg 17). @return The decoded point. </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="T:Org.BouncyCastle.Math.EC.ECPoint"> + base class for points on elliptic curves. + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECPoint.Normalize"> + 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 + </member> + <member name="P:Org.BouncyCastle.Math.EC.ECPoint.X"> + Normalizes this point, and then returns the affine x-coordinate. + + Note: normalization can be expensive, this method is deprecated in favour + of caller-controlled normalization. + </member> + <member name="P:Org.BouncyCastle.Math.EC.ECPoint.Y"> + Normalizes this point, and then returns the affine y-coordinate. + + Note: normalization can be expensive, this method is deprecated in favour + of caller-controlled normalization. + </member> + <member name="P:Org.BouncyCastle.Math.EC.ECPoint.AffineXCoord"> + 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 + </member> + <member name="P:Org.BouncyCastle.Math.EC.ECPoint.AffineYCoord"> + 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 + </member> + <member name="P:Org.BouncyCastle.Math.EC.ECPoint.XCoord"> + 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 + </member> + <member name="P:Org.BouncyCastle.Math.EC.ECPoint.YCoord"> + 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 + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECPointBase.GetEncoded(System.Boolean)"> + return the field element encoded with point compression. (S 4.3.6) + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECPointBase.Multiply(Org.BouncyCastle.Math.BigInteger)"> + Multiplies this <code>ECPoint</code> by the given number. + @param k The multiplicator. + @return <code>k * this</code>. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve the curve to use + @param x affine x co-ordinate + @param y affine y co-ordinate + + @deprecated Use ECCurve.CreatePoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Djb.Curve25519Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP192K1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP192R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP224K1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP224R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP256K1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP256R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP384R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1FieldElement.Sqrt"> + return a sqrt root - the routine verifies that the calculation returns the right value - if + none exists it returns null. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> + Create a point which encodes with point compression. + + @param curve + the curve to use + @param x + affine x co-ordinate + @param y + affine y co-ordinate + + @deprecated Use ECCurve.createPoint to construct points + </member> + <member name="M:Org.BouncyCastle.Math.EC.Custom.Sec.SecP521R1Point.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> + Create a point that encodes with or without point compresion. + + @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 + + @deprecated per-point compression property will be removed, refer + {@link #getEncoded(bool)} + </member> + <member name="M:Org.BouncyCastle.Math.EC.ECAlgorithms.ReferenceMultiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> + 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 <code>kP</code>. + </member> <member name="T:Org.BouncyCastle.Math.EC.FpCurve"> Elliptic curve over Fp </member> @@ -14014,13 +16455,7 @@ x<sup>k3</sup> + x<sup>k2</sup> + x<sup>k1</sup> + 1</code> represents the reduction polynomial <code>f(z)</code>.<br/> </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mCurve.n"> - The order of the base point of the curve. - </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mCurve.h"> - The cofactor of the curve. - </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mCurve.infinity"> + <member name="F:Org.BouncyCastle.Math.EC.F2mCurve.m_infinity"> The point at infinity on this curve. </member> <member name="F:Org.BouncyCastle.Math.EC.F2mCurve.mu"> @@ -14059,8 +16494,8 @@ @param b The coefficient <code>b</code> in the Weierstrass equation for non-supersingular elliptic curves over <code>F<sub>2<sup>m</sup></sub></code>. - @param n The order of the main subgroup of the elliptic curve. - @param h The cofactor of the elliptic curve, i.e. + @param order The order of the main subgroup of the elliptic curve. + @param cofactor The cofactor of the elliptic curve, i.e. <code>#E<sub>a</sub>(F<sub>2<sup>m</sup></sub>) = h * n</code>. </member> <member name="M:Org.BouncyCastle.Math.EC.F2mCurve.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.BigInteger)"> @@ -14102,8 +16537,8 @@ @param b The coefficient <code>b</code> in the Weierstrass equation for non-supersingular elliptic curves over <code>F<sub>2<sup>m</sup></sub></code>. - @param n The order of the main subgroup of the elliptic curve. - @param h The cofactor of the elliptic curve, i.e. + @param order The order of the main subgroup of the elliptic curve. + @param cofactor The cofactor of the elliptic curve, i.e. <code>#E<sub>a</sub>(F<sub>2<sup>m</sup></sub>) = h * n</code>. </member> <member name="M:Org.BouncyCastle.Math.EC.F2mCurve.GetMu"> @@ -14117,7 +16552,7 @@ <code>s<sub>1</sub></code> used for partial modular reduction for Koblitz curves. </member> - <member name="M:Org.BouncyCastle.Math.EC.F2mCurve.solveQuadradicEquation(Org.BouncyCastle.Math.EC.ECFieldElement)"> + <member name="M:Org.BouncyCastle.Math.EC.F2mCurve.SolveQuadradicEquation(Org.BouncyCastle.Math.EC.ECFieldElement)"> Solves a quadratic equation <code>z<sup>2</sup> + z = beta</code>(X9.62 D.1.6) The other solution is <code>z + 1</code>. @@ -14169,31 +16604,8 @@ <member name="F:Org.BouncyCastle.Math.EC.F2mFieldElement.m"> The exponent <code>m</code> of <code>F<sub>2<sup>m</sup></sub></code>. </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mFieldElement.k1"> - Tpb: The integer <code>k</code> where <code>x<sup>m</sup> + - x<sup>k</sup> + 1</code> represents the reduction polynomial - <code>f(z)</code>.<br/> - Ppb: The integer <code>k1</code> where <code>x<sup>m</sup> + - x<sup>k3</sup> + x<sup>k2</sup> + x<sup>k1</sup> + 1</code> - represents the reduction polynomial <code>f(z)</code>.<br/> - </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mFieldElement.k2"> - Tpb: Always set to <code>0</code><br/> - Ppb: The integer <code>k2</code> where <code>x<sup>m</sup> + - x<sup>k3</sup> + x<sup>k2</sup> + x<sup>k1</sup> + 1</code> - represents the reduction polynomial <code>f(z)</code>.<br/> - </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mFieldElement.k3"> - Tpb: Always set to <code>0</code><br/> - Ppb: The integer <code>k3</code> where <code>x<sup>m</sup> + - x<sup>k3</sup> + x<sup>k2</sup> + x<sup>k1</sup> + 1</code> - represents the reduction polynomial <code>f(z)</code>.<br/> - </member> <member name="F:Org.BouncyCastle.Math.EC.F2mFieldElement.x"> - The <code>IntArray</code> holding the bits. - </member> - <member name="F:Org.BouncyCastle.Math.EC.F2mFieldElement.t"> - The number of <code>int</code>s required to hold <code>m</code> bits. + The <code>LongArray</code> holding the bits. </member> <member name="M:Org.BouncyCastle.Math.EC.F2mFieldElement.#ctor(System.Int32,System.Int32,System.Int32,System.Int32,Org.BouncyCastle.Math.BigInteger)"> Constructor for Ppb. @@ -14262,48 +16674,24 @@ x<sup>k3</sup> + x<sup>k2</sup> + x<sup>k1</sup> + 1</code> represents the reduction polynomial <code>f(z)</code>.<br/> </member> - <member name="T:Org.BouncyCastle.Math.EC.ECPoint"> - base class for points on elliptic curves. - </member> - <member name="M:Org.BouncyCastle.Math.EC.ECPoint.SetPreCompInfo(Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> - Sets the <code>PreCompInfo</code>. Used by <code>ECMultiplier</code>s - to save the precomputation for this <code>ECPoint</code> to store the - precomputation result for use by subsequent multiplication. - @param preCompInfo The values precomputed by the - <code>ECMultiplier</code>. - </member> - <member name="M:Org.BouncyCastle.Math.EC.ECPoint.AssertECMultiplier"> - Sets the appropriate <code>ECMultiplier</code>, unless already set. - </member> - <member name="M:Org.BouncyCastle.Math.EC.ECPointBase.GetEncoded"> - return the field element encoded with point compression. (S 4.3.6) - </member> - <member name="M:Org.BouncyCastle.Math.EC.ECPointBase.Multiply(Org.BouncyCastle.Math.BigInteger)"> - Multiplies this <code>ECPoint</code> by the given number. - @param k The multiplicator. - @return <code>k * this</code>. - </member> <member name="T:Org.BouncyCastle.Math.EC.FpPoint"> Elliptic curve points over Fp </member> <member name="M:Org.BouncyCastle.Math.EC.FpPoint.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement)"> - Create a point which encodes with point compression. + 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 </member> <member name="M:Org.BouncyCastle.Math.EC.FpPoint.#ctor(Org.BouncyCastle.Math.EC.ECCurve,Org.BouncyCastle.Math.EC.ECFieldElement,Org.BouncyCastle.Math.EC.ECFieldElement,System.Boolean)"> - Create a point that encodes with or without point compresion. + 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 </member> - <member name="M:Org.BouncyCastle.Math.EC.FpPoint.AssertECMultiplier"> - Sets the default <code>ECMultiplier</code>, unless already set. - </member> <member name="T:Org.BouncyCastle.Math.EC.F2mPoint"> Elliptic curve points over F2m </member> @@ -14346,85 +16734,117 @@ <code>this</code>. @return <code>this - b</code> </member> - <member name="M:Org.BouncyCastle.Math.EC.F2mPoint.AssertECMultiplier"> - Sets the appropriate <code>ECMultiplier</code>, unless already set. - </member> <member name="T:Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier"> Interface for classes encapsulating a point multiplication algorithm for <code>ECPoint</code>s. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier.Multiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.ECMultiplier.Multiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> Multiplies the <code>ECPoint p</code> by <code>k</code>, i.e. <code>p</code> is added <code>k</code> times to itself. @param p The <code>ECPoint</code> to be multiplied. - @param k The factor by which <code>p</code> i multiplied. + @param k The factor by which <code>p</code> is multiplied. @return <code>p</code> multiplied by <code>k</code>. </member> - <member name="T:Org.BouncyCastle.Math.EC.Multiplier.FpNafMultiplier"> - Class implementing the NAF (Non-Adjacent Form) multiplication algorithm. + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.DoubleAddMultiplier.MultiplyPositive(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> + Joye's double-add algorithm. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.FpNafMultiplier.Multiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> - D.3.2 pg 101 - @see org.bouncycastle.math.ec.multiplier.ECMultiplier#multiply(org.bouncycastle.math.ec.ECPoint, java.math.BigInteger) + <member name="T:Org.BouncyCastle.Math.EC.Multiplier.FixedPointPreCompInfo"> + Class holding precomputation data for fixed-point multiplications. </member> <member name="T:Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo"> Interface for classes storing precomputation data for multiplication algorithms. Used as a Memento (see GOF patterns) for <code>WNafMultiplier</code>. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.ReferenceMultiplier.Multiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> - Simple shift-and-add multiplication. Serves as reference implementation - to verify (possibly faster) implementations in - {@link org.bouncycastle.math.ec.ECPoint ECPoint}. - - @param p The point to multiply. - @param k The factor by which to multiply. - @return The result of the point multiplication <code>k * p</code>. + <member name="F:Org.BouncyCastle.Math.EC.Multiplier.FixedPointPreCompInfo.m_preComp"> + Array holding the precomputed <code>ECPoint</code>s used for a fixed + point multiplication. + </member> + <member name="F:Org.BouncyCastle.Math.EC.Multiplier.FixedPointPreCompInfo.m_width"> + 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. + </member> + <member name="T:Org.BouncyCastle.Math.EC.Multiplier.MixedNafR2LMultiplier"> + Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left) using + mixed coordinates. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.MixedNafR2LMultiplier.#ctor"> + By default, addition will be done in Jacobian coordinates, and doubling will be done in + Modified Jacobian coordinates (independent of the original coordinate system of each point). </member> - <member name="T:Org.BouncyCastle.Math.EC.Multiplier.WNafMultiplier"> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.MontgomeryLadderMultiplier.MultiplyPositive(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> + Montgomery ladder. + </member> + <member name="T:Org.BouncyCastle.Math.EC.Multiplier.NafL2RMultiplier"> + Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (left-to-right). + </member> + <member name="T:Org.BouncyCastle.Math.EC.Multiplier.NafR2LMultiplier"> + Class implementing the NAF (Non-Adjacent Form) multiplication algorithm (right-to-left). + </member> + <member name="T:Org.BouncyCastle.Math.EC.Multiplier.WNafL2RMultiplier"> Class implementing the WNAF (Window Non-Adjacent Form) multiplication algorithm. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafMultiplier.WindowNaf(System.SByte,Org.BouncyCastle.Math.BigInteger)"> - Computes the Window NAF (non-adjacent Form) of an integer. - @param width The width <code>w</code> of the Window NAF. The width is - defined as the minimal number <code>w</code>, such that for any - <code>w</code> 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: - <code>k = −<sub>i=0</sub><sup>l-1</sup> k<sub>i</sub>2<sup>i</sup> - </code>, where the <code>k<sub>i</sub></code> denote the elements of the - returned <code>sbyte[]</code>. - </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafMultiplier.Multiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafL2RMultiplier.MultiplyPositive(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> Multiplies <code>this</code> by an integer <code>k</code> using the Window NAF method. @param k The integer by which <code>this</code> is multiplied. @return A new <code>ECPoint</code> which equals <code>this</code> multiplied by <code>k</code>. </member> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafL2RMultiplier.GetWindowSize(System.Int32)"> + 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 + </member> <member name="T:Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo"> Class holding precomputation data for the WNAF (Window Non-Adjacent Form) algorithm. </member> - <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo.preComp"> - Array holding the precomputed <code>ECPoint</code>s used for the Window - NAF multiplication in <code> - {@link org.bouncycastle.math.ec.multiplier.WNafMultiplier.multiply() - WNafMultiplier.multiply()}</code>. + <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo.m_preComp"> + Array holding the precomputed <code>ECPoint</code>s used for a Window + NAF multiplication. + </member> + <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo.m_preCompNeg"> + Array holding the negations of the precomputed <code>ECPoint</code>s used + for a Window NAF multiplication. </member> - <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo.twiceP"> - Holds an <code>ECPoint</code> representing twice(this). Used for the - Window NAF multiplication in <code> - {@link org.bouncycastle.math.ec.multiplier.WNafMultiplier.multiply() - WNafMultiplier.multiply()}</code>. + <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WNafPreCompInfo.m_twice"> + Holds an <code>ECPoint</code> representing Twice(this). Used for the + Window NAF multiplication to create or extend the precomputed values. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafUtilities.GenerateWindowNaf(System.Int32,Org.BouncyCastle.Math.BigInteger)"> + Computes the Window NAF (non-adjacent Form) of an integer. + @param width The width <code>w</code> of the Window NAF. The width is + defined as the minimal number <code>w</code>, such that for any + <code>w</code> 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: + <code>k = &sum;<sub>i=0</sub><sup>l-1</sup> k<sub>i</sub>2<sup>i</sup> + </code>, where the <code>k<sub>i</sub></code> denote the elements of the + returned <code>byte[]</code>. + </member> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafUtilities.GetWindowSize(System.Int32)"> + 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 + </member> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WNafUtilities.GetWindowSize(System.Int32,System.Int32[])"> + 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 </member> <member name="T:Org.BouncyCastle.Math.EC.Multiplier.WTauNafMultiplier"> Class implementing the WTNAF (Window <code>τ</code>-adic Non-Adjacent Form) algorithm. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WTauNafMultiplier.Multiply(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.EC.Multiplier.PreCompInfo)"> + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WTauNafMultiplier.MultiplyPositive(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> Multiplies a {@link org.bouncycastle.math.ec.F2mPoint F2mPoint} by <code>k</code> using the reduced <code>τ</code>-adic NAF (RTNAF) method. @@ -14455,24 +16875,17 @@ Class holding precomputation data for the WTNAF (Window <code>τ</code>-adic Non-Adjacent Form) algorithm. </member> - <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WTauNafPreCompInfo.preComp"> + <member name="F:Org.BouncyCastle.Math.EC.Multiplier.WTauNafPreCompInfo.m_preComp"> Array holding the precomputed <code>F2mPoint</code>s used for the WTNAF multiplication in <code> {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply() WTauNafMultiplier.multiply()}</code>. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WTauNafPreCompInfo.#ctor(Org.BouncyCastle.Math.EC.F2mPoint[])"> - Constructor for <code>WTauNafPreCompInfo</code> - @param preComp Array holding the precomputed <code>F2mPoint</code>s - used for the WTNAF multiplication in <code> - {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply() - WTauNafMultiplier.multiply()}</code>. + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.ZSignedDigitL2RMultiplier.MultiplyPositive(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> + 'Zeroless' Signed Digit Left-to-Right. </member> - <member name="M:Org.BouncyCastle.Math.EC.Multiplier.WTauNafPreCompInfo.GetPreComp"> - @return the array holding the precomputed <code>F2mPoint</code>s - used for the WTNAF multiplication in <code> - {@link org.bouncycastle.math.ec.multiplier.WTauNafMultiplier.multiply() - WTauNafMultiplier.multiply()}</code>. + <member name="M:Org.BouncyCastle.Math.EC.Multiplier.ZSignedDigitR2LMultiplier.MultiplyPositive(Org.BouncyCastle.Math.EC.ECPoint,Org.BouncyCastle.Math.BigInteger)"> + 'Zeroless' Signed Digit Right-to-Left. </member> <member name="T:Org.BouncyCastle.Ocsp.BasicOcspResp"> <remarks> @@ -15430,6 +17843,9 @@ <member name="P:Org.BouncyCastle.Bcpg.OpenPgp.PgpSecretKey.IsMasterKey"> <summary>True, if this is a master key.</summary> </member> + <member name="P:Org.BouncyCastle.Bcpg.OpenPgp.PgpSecretKey.IsPrivateKeyEmpty"> + <summary>Detect if the Secret Key's Private Key is empty or not</summary> + </member> <member name="P:Org.BouncyCastle.Bcpg.OpenPgp.PgpSecretKey.KeyEncryptionAlgorithm"> <summary>The algorithm the key is encrypted with.</summary> </member> @@ -16911,7 +19327,7 @@ <param name="certStores">a List containing only X509Store objects. These are used to search for certificates.</param> <returns>a Collection of all found <see cref="T:Org.BouncyCastle.X509.X509Certificate"/> or - org.bouncycastle.x509.X509AttributeCertificate objects. + <see cref="T:Org.BouncyCastle.X509.IX509AttributeCertificate"/> objects. May be empty but never <code>null</code>.</returns> <exception cref="T:System.Exception"></exception> </member> @@ -17797,6 +20213,17 @@ <param name="b">second array</param> <returns>true if arrays equal, false otherwise.</returns> </member> + <member name="M:Org.BouncyCastle.Utilities.Arrays.CopyOfRange(System.Byte[],System.Int32,System.Int32)"> + 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. + </member> <member name="T:Org.BouncyCastle.Utilities.BigIntegers"> BigInteger utilities. </member> @@ -17806,6 +20233,13 @@ @param value value to be converted. @return a byte array without a leading zero byte if present in the signed encoding. </member> + <member name="M:Org.BouncyCastle.Utilities.BigIntegers.AsUnsignedByteArray(System.Int32,Org.BouncyCastle.Math.BigInteger)"> + 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. + </member> <member name="M:Org.BouncyCastle.Utilities.BigIntegers.CreateRandomInRange(Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Math.BigInteger,Org.BouncyCastle.Security.SecureRandom)"> Return a random BigInteger not less than 'min' and not greater than 'max' @@ -17839,6 +20273,11 @@ @return a byte array containing the base 64 encoded data. </member> + <member name="M:Org.BouncyCastle.Utilities.Encoders.Base64.Encode(System.Byte[],System.Int32,System.Int32)"> + encode the input data producing a base 64 encoded byte array. + + @return a byte array containing the base 64 encoded data. + </member> <member name="M:Org.BouncyCastle.Utilities.Encoders.Base64.Encode(System.Byte[],System.IO.Stream)"> Encode the byte data to base 64 writing it to the given output stream. @@ -18137,6 +20576,18 @@ <returns>The number of bytes actually transferred, if not greater than <c>limit</c></returns> <exception cref="T:System.IO.IOException"></exception> </member> + <member name="T:Org.BouncyCastle.Utilities.MemoableResetException"> + Exception to be thrown on a failure to reset an object implementing Memoable. + <p> + The exception extends InvalidCastException to enable users to have a single handling case, + only introducing specific handling of this one if required. + </p> + </member> + <member name="M:Org.BouncyCastle.Utilities.MemoableResetException.#ctor(System.String)"> + Basic Constructor. + + @param msg message to be associated with this exception. + </member> <member name="M:Org.BouncyCastle.Utilities.Net.IPAddress.IsValid(System.String)"> Validate the given IPv4 or IPv6 address. diff --git a/crypto/test/src/asn1/test/AllTests.cs b/crypto/test/src/asn1/test/AllTests.cs index a1ae8fd48..d219ef93f 100644 --- a/crypto/test/src/asn1/test/AllTests.cs +++ b/crypto/test/src/asn1/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -30,3 +31,4 @@ namespace Org.BouncyCastle.Asn1.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/cms/test/AllTests.cs b/crypto/test/src/cms/test/AllTests.cs index 1ce3b7c8d..1b1e6947b 100644 --- a/crypto/test/src/cms/test/AllTests.cs +++ b/crypto/test/src/cms/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -33,3 +34,4 @@ namespace Org.BouncyCastle.Cms.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/crypto/io/test/AllTests.cs b/crypto/test/src/crypto/io/test/AllTests.cs index 0296a2dc0..4d34fa6d4 100644 --- a/crypto/test/src/crypto/io/test/AllTests.cs +++ b/crypto/test/src/crypto/io/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -25,3 +26,4 @@ namespace Org.BouncyCastle.Crypto.IO.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/crypto/test/AllTests.cs b/crypto/test/src/crypto/test/AllTests.cs index 1cb1b965d..03afe69cd 100644 --- a/crypto/test/src/crypto/test/AllTests.cs +++ b/crypto/test/src/crypto/test/AllTests.cs @@ -1,6 +1,8 @@ using System; +#if !LIB using NUnit.Core; +#endif using NUnit.Framework; using Org.BouncyCastle.Utilities.Test; @@ -10,6 +12,7 @@ namespace Org.BouncyCastle.Crypto.Tests [TestFixture] public class AllTests { +#if !LIB [Suite] public static TestSuite Suite { @@ -21,6 +24,7 @@ namespace Org.BouncyCastle.Crypto.Tests return suite; } } +#endif [Test] public void TestCrypto() @@ -35,7 +39,7 @@ namespace Org.BouncyCastle.Crypto.Tests } } } - +#if !LIB public static void Main( string[] args) { @@ -43,5 +47,6 @@ namespace Org.BouncyCastle.Crypto.Tests EventListener el = new NullListener(); Suite.Run(el); } +#endif } } diff --git a/crypto/test/src/math/ec/test/AllTests.cs b/crypto/test/src/math/ec/test/AllTests.cs index d4c7dc768..54ccd8fd8 100644 --- a/crypto/test/src/math/ec/test/AllTests.cs +++ b/crypto/test/src/math/ec/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -26,3 +27,4 @@ namespace Org.BouncyCastle.Math.EC.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/math/test/AllTests.cs b/crypto/test/src/math/test/AllTests.cs index 6f2b50140..4af8952e3 100644 --- a/crypto/test/src/math/test/AllTests.cs +++ b/crypto/test/src/math/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -25,3 +26,4 @@ namespace Org.BouncyCastle.Math.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/ocsp/test/AllTests.cs b/crypto/test/src/ocsp/test/AllTests.cs index 2b30e3ad4..d7393c22c 100644 --- a/crypto/test/src/ocsp/test/AllTests.cs +++ b/crypto/test/src/ocsp/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -27,3 +28,4 @@ namespace Org.BouncyCastle.Ocsp.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/openpgp/examples/test/AllTests.cs b/crypto/test/src/openpgp/examples/test/AllTests.cs index 180d2fa80..a066ff3d0 100644 --- a/crypto/test/src/openpgp/examples/test/AllTests.cs +++ b/crypto/test/src/openpgp/examples/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using System.IO; @@ -401,3 +402,4 @@ namespace Org.BouncyCastle.Bcpg.OpenPgp.Examples.Tests } } +#endif \ No newline at end of file diff --git a/crypto/test/src/openssl/test/AllTests.cs b/crypto/test/src/openssl/test/AllTests.cs index 921208179..954fcb391 100644 --- a/crypto/test/src/openssl/test/AllTests.cs +++ b/crypto/test/src/openssl/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using System.IO; using System.Text; @@ -131,3 +132,4 @@ namespace Org.BouncyCastle.OpenSsl.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/security/test/SecureRandomTest.cs b/crypto/test/src/security/test/SecureRandomTest.cs index 12e4b9a47..0a7ac88c4 100644 --- a/crypto/test/src/security/test/SecureRandomTest.cs +++ b/crypto/test/src/security/test/SecureRandomTest.cs @@ -9,7 +9,7 @@ namespace Org.BouncyCastle.Security.Tests [TestFixture] public class SecureRandomTest { -#if !NETCF_1_0 +#if !NETCF_1_0 && !PCL [Test] public void TestCryptoApi() { diff --git a/crypto/test/src/tsp/test/AllTests.cs b/crypto/test/src/tsp/test/AllTests.cs index 66dc9c480..c58ff22b7 100644 --- a/crypto/test/src/tsp/test/AllTests.cs +++ b/crypto/test/src/tsp/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using NUnit.Core; @@ -30,3 +31,4 @@ namespace Org.BouncyCastle.Tsp.Tests } } } +#endif \ No newline at end of file diff --git a/crypto/test/src/util/io/pem/test/AllTests.cs b/crypto/test/src/util/io/pem/test/AllTests.cs index b44949383..3dd8322cb 100644 --- a/crypto/test/src/util/io/pem/test/AllTests.cs +++ b/crypto/test/src/util/io/pem/test/AllTests.cs @@ -1,3 +1,4 @@ +#if !LIB using System; using System.Collections; using System.Collections.Specialized; @@ -75,3 +76,4 @@ namespace Org.BouncyCastle.Utilities.IO.Pem.Tests } } } +#endif \ No newline at end of file |