var searchIndex = {}; searchIndex["ring"] = {"doc":"Safe, fast, small crypto using Rust with BoringSSL's cryptography\nprimitives.","items":[[0,"aead","ring","Authenticated Encryption with Associated Data (AEAD).",null,null],[3,"OpeningKey","ring::aead","A key for authenticating and decrypting (“opening”)\nAEAD-protected data.",null,null],[3,"SealingKey","","A key for encrypting and signing (“sealing”) data.",null,null],[3,"Algorithm","","An AEAD Algorithm.",null,null],[5,"open_in_place","","Authenticates and decrypts (“opens”) data in place.",null,null],[5,"seal_in_place","","Encrypts and signs (“seals”) data in place.",null,null],[7,"CHACHA20_POLY1305","","ChaCha20-Poly1305 as described in [RFC 7539].",null,null],[7,"CHACHA20_POLY1305_OLD","","The old ChaCha20-Poly13065 construction used in OpenSSH's\n[chacha20-poly1305@openssh.com] and the experimental TLS cipher suites with\nIDs `0xCC13` (ECDHE-RSA) and `0xCC14` (ECDHE-ECDSA). Use\n`CHACHA20_POLY1305` instead.",null,null],[7,"AES_128_GCM","","AES-128 in GCM mode with 128-bit tags and 96 bit nonces.",null,null],[7,"AES_256_GCM","","AES-256 in GCM mode with 128-bit tags and 96 bit nonces.",null,null],[17,"MAX_OVERHEAD_LEN","","The maximum amount of overhead for the algorithms in this module.",null,null],[11,"new","","Create a new opening key.",0,null],[11,"algorithm","","The key's AEAD algorithm.",0,null],[11,"new","","C analogs: `EVP_AEAD_CTX_init_with_direction` with direction\n `evp_aead_seal`, `EVP_AEAD_CTX_init`.",1,null],[11,"algorithm","","The key's AEAD algorithm.",1,null],[11,"key_len","","The length of the key.",2,null],[11,"max_overhead_len","","The maximum number of bytes that sealing operations may add to plaintexts.\nSee also `MAX_OVERHEAD_LEN`.",2,null],[11,"nonce_len","","The length of the nonces.",2,null],[0,"agreement","ring","Key Agreement: ECDH, including X25519.",null,null],[3,"Algorithm","ring::agreement","A key agreement algorithm.",null,null],[3,"EphemeralPrivateKey","","An ephemeral private key for use (only) with `agree_ephemeral`. The\nsignature of `agree_ephemeral` ensures that an `EphemeralPrivateKey` can be\nused for at most one key agreement.",null,null],[5,"agree_ephemeral","","Performs a key agreement with an ephemeral private key and the given public\nkey.",null,{"inputs":[{"name":"ephemeralprivatekey"},{"name":"algorithm"},{"name":"input"},{"name":"e"},{"name":"f"}],"output":{"name":"result"}}],[7,"ECDH_P256","","ECDH using the NSA Suite B\nP-256 (secp256r1)\ncurve.",null,null],[7,"ECDH_P384","","ECDH using the NSA Suite B\nP-384 (secp384r1)\ncurve.",null,null],[7,"X25519","","X25519 (ECDH using Curve25519) as described in [RFC 7748].",null,null],[17,"PUBLIC_KEY_MAX_LEN","","The maximum length, in bytes, of an encoded public key.",null,null],[11,"generate","","Generate a new ephemeral private key for the given algorithm.",3,{"inputs":[{"name":"algorithm"},{"name":"securerandom"}],"output":{"name":"result"}}],[11,"public_key_len","","The size in bytes of the encoded public key.",3,null],[11,"compute_public_key","","Computes the public key from the private key's value and fills `out`\nwith the public point encoded in the standard form for the algorithm.",3,null],[0,"constant_time","ring","Constant-time operations.",null,null],[5,"verify_slices_are_equal","ring::constant_time","Returns `Ok(())` if `a == b` and `Err(error::Unspecified)` otherwise.\nThe comparison of `a` and `b` is done in constant time with respect to the\ncontents of each, but NOT in constant time with respect to the lengths of\n`a` and `b`.",null,null],[0,"error","ring","Error reporting.",null,null],[3,"Unspecified","ring::error","An error with absolutely no details.",null,null],[11,"eq","","",4,null],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"fmt","","",4,null],[11,"cause","","",4,null],[11,"description","","",4,null],[11,"from","","",4,{"inputs":[{"name":"endofinput"}],"output":{"name":"self"}}],[0,"digest","ring","SHA-2 and the legacy SHA-1 digest algorithm.",null,null],[3,"Context","ring::digest","A context for multi-step (Init-Update-Finish) digest calculations.",null,null],[12,"algorithm","","The context's algorithm.",5,null],[3,"Digest","","A calculated digest value.",null,null],[3,"Algorithm","","A digest algorithm.",null,null],[12,"output_len","","C analog: `EVP_MD_size`",6,null],[12,"chaining_len","","The size of the chaining value of the digest function, in bytes. For\nnon-truncated algorithms (SHA-1, SHA-256, SHA-512), this is equal to\n`output_len`. For truncated algorithms (e.g. SHA-384, SHA-512/256),\nthis is equal to the length before truncation. This is mostly helpful\nfor determining the size of an HMAC key that is appropriate for the\ndigest algorithm.",6,null],[12,"block_len","","C analog: `EVP_MD_block_size`",6,null],[5,"digest","","Returns the digest of `data` using the given digest algorithm.",null,null],[7,"SHA1","","SHA-1 as specified in [FIPS 180-4]. Deprecated.",null,null],[7,"SHA256","","SHA-256 as specified in [FIPS 180-4].",null,null],[7,"SHA384","","SHA-384 as specified in [FIPS 180-4].",null,null],[7,"SHA512","","SHA-512 as specified in [FIPS 180-4].",null,null],[17,"MAX_BLOCK_LEN","","The maximum block length (`Algorithm::block_len`) of all the algorithms in\nthis module.",null,null],[17,"MAX_OUTPUT_LEN","","The maximum output length (`Algorithm::output_len`) of all the algorithms\nin this module.",null,null],[17,"MAX_CHAINING_LEN","","The maximum chaining length (`Algorithm::chaining_len`) of all the\nalgorithms in this module.",null,null],[11,"new","","Constructs a new context.",5,{"inputs":[{"name":"algorithm"}],"output":{"name":"context"}}],[11,"update","","Updates the digest with all the data in `data`. `update` may be called\nzero or more times until `finish` is called. It must not be called\nafter `finish` has been called.",5,null],[11,"finish","","Finalizes the digest calculation and returns the digest value. `finish`\nconsumes the context so it cannot be (mis-)used after `finish` has been\ncalled.",5,null],[11,"algorithm","","The algorithm that this context is using.",5,null],[11,"clone","","",5,null],[11,"algorithm","","The algorithm that was used to calculate the digest value.",7,null],[11,"as_ref","","",7,null],[11,"fmt","","",7,null],[11,"fmt","","",6,null],[0,"hkdf","ring","HMAC-based Extract-and-Expand Key Derivation Function.",null,null],[5,"extract_and_expand","ring::hkdf","Fills `out` with the output of the HKDF Extract-and-Expand operation for\nthe given inputs.",null,null],[5,"extract","","The HKDF-Extract operation.",null,null],[5,"expand","","Fills `out` with the output of the HKDF-Expand operation for the given\ninputs.",null,null],[0,"hmac","ring","HMAC is specified in [RFC 2104].",null,null],[3,"SigningKey","ring::hmac","A key to use for HMAC signing.",null,null],[3,"SigningContext","","A context for multi-step (Init-Update-Finish) HMAC signing.",null,null],[3,"VerificationKey","","A key to use for HMAC authentication.",null,null],[5,"sign","","Calculates the HMAC of `data` using the key `key` in one step.",null,null],[5,"verify","","Calculates the HMAC of `data` using the key `key`, and verifies whether the\nresultant value equals `signature`, in one step.",null,null],[5,"verify_with_own_key","","Calculates the HMAC of `data` using the signing key `key`, and verifies\nwhether the resultant value equals `signature`, in one step.",null,null],[11,"generate","","Generate an HMAC signing key for the given digest algorithm using\n|ring::rand|. The key will be `digest_alg.chaining_len` bytes long. The\nkey size choice is based on the recommendation of\n[NIST SP 800-107], Section 5.3.4: Security Effect of the HMAC\nKey, and is consistent with the key lengths chosen for TLS as\ndescribed in [RFC 5246, Appendix C].",8,{"inputs":[{"name":"algorithm"},{"name":"securerandom"}],"output":{"name":"result"}}],[11,"new","","Construct an HMAC signing key using the given digest algorithm and key\nvalue.",8,null],[11,"digest_algorithm","","The digest algorithm for the key.",8,null],[11,"with_key","","Constructs a new HMAC signing context using the given digest algorithm\nand key.",9,{"inputs":[{"name":"signingkey"}],"output":{"name":"signingcontext"}}],[11,"update","","Updates the HMAC with all the data in `data`. `update` may be called\nzero or more times until `finish` is called.",9,null],[11,"sign","","Finalizes the HMAC calculation and returns the HMAC value. `sign`\nconsumes the context so it cannot be (mis-)used after `sign` has been\ncalled.",9,null],[11,"new","","Construct an HMAC verification key using the given digest algorithm and\nkey value.",10,null],[0,"pbkdf2","ring","PBKDF2 derivation and verification.",null,null],[3,"PRF","ring::pbkdf2","A PRF algorithm for use with `derive` and `verify`.",null,null],[5,"derive","","Fills `out` with the key derived using PBKDF2 with the given inputs.",null,null],[5,"verify","","Verifies that a previously-derived (e.g., using `derive`) PBKDF2 value\nmatches the PBKDF2 value derived from the other inputs.",null,null],[7,"HMAC_SHA256","","HMAC-SHA256.",null,null],[7,"HMAC_SHA512","","HMAC-SHA512.",null,null],[0,"rand","ring","Cryptographic pseudo-random number generation.",null,null],[3,"SystemRandom","ring::rand","A secure random number generator where the random values come directly\nfrom the operating system.",null,null],[8,"SecureRandom","","A secure random number generator.",null,null],[10,"fill","","Fills `dest` with random bytes.",11,null],[11,"new","","Constructs a new `SystemRandom`.",12,{"inputs":[],"output":{"name":"systemrandom"}}],[11,"fill","","This is the same as calling `fill` through the `SecureRandom` trait,\nbut allows callers to avoid the annoying step of needing to\n`use rand::SecureRandom` just to call `fill` on a `SystemRandom`.",12,null],[11,"fill","","",12,null],[0,"signature","ring","Public key signatures: signing and verification.",null,null],[3,"ECDSAParameters","ring::signature","Parameters for ECDSA signing and verification.",null,null],[3,"EdDSAParameters","","Parameters for EdDSA signing and verification.",null,null],[3,"Ed25519KeyPair","","An Ed25519 key pair, for signing.",null,null],[3,"Ed25519KeyPairBytes","","The raw bytes of the Ed25519 key pair, for serialization.",null,null],[12,"private_key","","Private key bytes.",13,null],[12,"public_key","","Public key bytes.",13,null],[3,"RSAParameters","","Parameters for RSA signing and verification.",null,null],[3,"Signature","","A public key signature returned from a signing operation.",null,null],[5,"verify","","Verify the signature `signature` of message `msg` with the public key\n`public_key` using the algorithm `alg`.",null,{"inputs":[{"name":"verificationalgorithm"},{"name":"input"},{"name":"input"},{"name":"input"}],"output":{"name":"result"}}],[7,"ECDSA_P256_SHA1_ASN1","","Verification of ECDSA signatures using the P-256 curve and SHA-1.",null,null],[7,"ECDSA_P256_SHA256_ASN1","","Verification of ECDSA signatures using the P-256 curve and SHA-256.",null,null],[7,"ECDSA_P256_SHA384_ASN1","","Verification of ECDSA signatures using the P-256 curve and SHA-384.",null,null],[7,"ECDSA_P256_SHA512_ASN1","","Verification of ECDSA signatures using the P-256 curve and SHA-512.",null,null],[7,"ECDSA_P384_SHA1_ASN1","","Verification of ECDSA signatures using the P-384 curve and SHA-1.",null,null],[7,"ECDSA_P384_SHA256_ASN1","","Verification of ECDSA signatures using the P-384 curve and SHA-256.",null,null],[7,"ECDSA_P384_SHA384_ASN1","","Verification of ECDSA signatures using the P-384 curve and SHA-384.",null,null],[7,"ECDSA_P384_SHA512_ASN1","","Verification of ECDSA signatures using the P-384 curve and SHA-512.",null,null],[7,"ED25519","","Verification of [Ed25519] signatures.",null,null],[7,"RSA_PKCS1_2048_8192_SHA1","","Verification of signatures using RSA keys of 2048-8192 bits,\n PKCS#1.5 padding, and SHA-1.",null,null],[7,"RSA_PKCS1_2048_8192_SHA256","","Verification of signatures using RSA keys of 2048-8192 bits,\n PKCS#1.5 padding, and SHA-256.",null,null],[7,"RSA_PKCS1_2048_8192_SHA384","","Verification of signatures using RSA keys of 2048-8192 bits,\n PKCS#1.5 padding, and SHA-384.",null,null],[7,"RSA_PKCS1_2048_8192_SHA512","","Verification of signatures using RSA keys of 2048-8192 bits,\n PKCS#1.5 padding, and SHA-512.",null,null],[7,"RSA_PKCS1_3072_8192_SHA384","","Verification of signatures using RSA keys of 3072-8192 bits,\n PKCS#1.5 padding, and SHA-384.",null,null],[8,"VerificationAlgorithm","","A signature verification algorithm.",null,null],[10,"verify","","Verify the signature `signature` of message `msg` with the public key\n`public_key`.",14,null],[11,"as_slice","","Returns a reference to the signature's encoded value.",15,null],[0,"test","ring","Testing framework.",null,null],[3,"TestCase","ring::test","A test case. A test case consists of a set of named attributes. Every\nattribute in the test case must be consumed exactly once; this helps catch\ntypos and omissions.",null,null],[5,"from_file","","Reads test cases out of the file with the path given by\n`test_data_relative_file_path`, calling `f` on each vector until `f` fails\nor until all the test vectors have been read. `f` can indicate failure\neither by returning `Err()` or by panicking.",null,{"inputs":[{"name":"str"},{"name":"f"}],"output":null}],[5,"from_hex","","Decode an string of hex digits into a sequence of bytes. The input must\nhave an even number of digits.",null,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"consume_digest_alg","","Maps the strings "SHA1", "SHA256", "SHA384", and "SHA512" to digest\nalgorithms, maps "SHA224" to `None`, and panics on other (erroneous)\ninputs. "SHA224" is mapped to None because *ring* intentionally does\nnot support SHA224, but we need to consume test vectors from NIST that\nhave SHA224 vectors in them.",16,null],[11,"consume_bytes","","Returns the value of an attribute that is encoded as a sequence of an\neven number of hex digits, or as a double-quoted UTF-8 string. The\nempty (zero-length) value is represented as "".",16,null],[11,"consume_usize","","Returns the value of an attribute that is an integer, in decimal\nnotation.",16,null],[11,"consume_string","","Returns the raw value of an attribute, without any unquoting or\nother interpretation.",16,null],[11,"consume_optional_string","","Like `consume_string()` except it returns `None` if the test case\ndoesn't have the attribute.",16,null],[11,"generate","ring::signature","Generates a new random key pair. There is no way to extract the private\nkey bytes to save them. If you need to save the private key bytes for\nfuture use then use `generate_serializable()` instead.",17,{"inputs":[{"name":"securerandom"}],"output":{"name":"result"}}],[11,"generate_serializable","","Generates a new key pair and returns the key pair as both an\n`Ed25519KeyPair` and a `Ed25519KeyPairBytes`. There is no way to\nextract the private key bytes from an `Ed25519KeyPair`, so extracting\nthe values from the `Ed25519KeyPairBytes` is the only way to get them.",17,{"inputs":[{"name":"securerandom"}],"output":{"name":"result"}}],[11,"from_bytes","","Copies key data from the given slices to create a new key pair. The\nfirst slice must hold the private key and the second slice must hold\nthe public key. Both slices must contain 32 little-endian-encoded\nbytes.",17,null],[11,"public_key_bytes","","Returns a reference to the little-endian-encoded public key bytes.",17,null],[11,"sign","","Returns the signature of the message `msg`.",17,null],[11,"verify","","",18,null],[11,"verify","","",19,null],[11,"verify","","",20,null]],"paths":[[3,"OpeningKey"],[3,"SealingKey"],[3,"Algorithm"],[3,"EphemeralPrivateKey"],[3,"Unspecified"],[3,"Context"],[3,"Algorithm"],[3,"Digest"],[3,"SigningKey"],[3,"SigningContext"],[3,"VerificationKey"],[8,"SecureRandom"],[3,"SystemRandom"],[3,"Ed25519KeyPairBytes"],[8,"VerificationAlgorithm"],[3,"Signature"],[3,"TestCase"],[3,"Ed25519KeyPair"],[3,"EdDSAParameters"],[3,"ECDSAParameters"],[3,"RSAParameters"]]}; initSearch(searchIndex);