aws_sigv4

Module event_stream

Source
Available on crate feature sign-eventstream only.
Expand description

Utilities to sign Event Stream messages.

§Example: Signing an event stream message

use aws_sigv4::event_stream::sign_message;
use aws_smithy_types::event_stream::{Header, HeaderValue, Message};
use std::time::SystemTime;
use aws_credential_types::Credentials;
use aws_smithy_runtime_api::client::identity::Identity;
use aws_sigv4::sign::v4;

// The `last_signature` argument is the previous message's signature, or
// the signature of the initial HTTP request if a message hasn't been signed yet.
let last_signature = "example298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";

let message_to_sign = Message::new(&b"example"[..]).add_header(Header::new(
    "some-header",
    HeaderValue::String("value".into()),
));

let identity = Credentials::new(
    "AKIDEXAMPLE",
    "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY",
    None,
    None,
    "hardcoded-credentials"
).into();
let params = v4::SigningParams::builder()
    .identity(&identity)
    .region("us-east-1")
    .name("exampleservice")
    .time(SystemTime::now())
    .settings(())
    .build()
    .unwrap();

// Use the returned `signature` to sign the next message.
let (signed, signature) = sign_message(&message_to_sign, &last_signature, &params)
    .expect("signing should succeed")
    .into_parts();

Functions§

Type Aliases§