[][src]Trait oauth1_request::signature_method::Sign

pub trait Sign {
    type Signature: Display;
    fn get_signature_method_name(&self) -> &'static str;
fn request_method(&mut self, method: &str);
fn uri(&mut self, uri: impl Display);
fn parameter(&mut self, key: &str, value: impl Display);
fn delimiter(&mut self);
fn finish(self) -> Self::Signature; fn callback(&mut self, default_key: &'static str, value: impl Display) { ... }
fn consumer_key(&mut self, default_key: &'static str, value: impl Display) { ... }
fn nonce(&mut self, default_key: &'static str, value: impl Display) { ... }
fn use_nonce(&self) -> bool { ... }
fn signature_method(
        &mut self,
        default_key: &'static str,
        default_value: &'static str
    ) { ... }
fn timestamp(&mut self, default_key: &'static str, value: u64) { ... }
fn use_timestamp(&self) -> bool { ... }
fn token(&mut self, default_key: &'static str, value: impl Display) { ... }
fn verifier(&mut self, default_key: &'static str, value: impl Display) { ... }
fn version(
        &mut self,
        default_key: &'static str,
        default_value: &'static str
    ) { ... } }

Algorithms to sign a signature base string (RFC 5849 section 3.4.1.).

The type will be incrementally passed a signature base string by a Signer. For example, a signature base string like the following (line breaks are for display purposes only):

POST&
http%3A%2F%2Fexample.com%2Frequest&
a%3Dr%2520b
%26
a2%3Da
%26
oauth_consumer_key%3D9djdj82h48djs9d2
%26
oauth_nonce%3D7d8f3e4a
%26
oauth_signature_method%3DHMAC-SHA1
%26
oauth_timestamp%3D137131201
%26
oauth_token%3Dkkk9d7dh3k39sjv7
%26
z%3D

...is represented by a series of method calls like the following (sign is the Sign object):

sign.request_method("POST");
sign.uri("http%3A%2F%2Fexample.com%2Frequest");
sign.parameter("a", "r%2520b");
sign.delimiter();
sign.parameter("a2", "a");
sign.delimiter();
sign.consumer_key("oauth_consumer_key", "9djdj82h48djs9d2");
sign.delimiter();
sign.nonce("oauth_nonce", "7d8f3e4a");
sign.delimiter();
sign.signature_method("oauth_signature_method", "HMAC-SHA1");
sign.delimiter();
sign.timestamp("oauth_timestamp", 137131201);
sign.delimiter();
sign.token("oauth_token", "kkk9d7dh3k39sjv7");
sign.delimiter();
sign.parameter("z", "");
let _ = sign.finish();

Associated Types

type Signature: Display

The representation of oauth_signature string the algorithm produces.

Loading content...

Required methods

fn get_signature_method_name(&self) -> &'static str

Returns the oauth_signature_method string for the signature method associated with the algorithm.

fn request_method(&mut self, method: &str)

Feeds self with the HTTP request method part of the signature base string.

fn uri(&mut self, uri: impl Display)

Feeds self with the base string URI part of the signature base string.

fn parameter(&mut self, key: &str, value: impl Display)

Feeds self with a key-value parameter pair of the signature base string.

Implementors can reproduce the part of the signature base string the arguments represent by format!("{}%3D{}", key, value).

fn delimiter(&mut self)

Feeds self with the delimiter (%26) between parameters.

fn finish(self) -> Self::Signature

Finalizes the signing process and returns the resulting signature.

Loading content...

Provided methods

fn callback(&mut self, default_key: &'static str, value: impl Display)

Feeds self with the oauth_callback parameter part of the signature base string.

default_key argument is passed just for the convenience of implementors and is always "oauth_callback".

The default implementation forwards to the parameter method.

fn consumer_key(&mut self, default_key: &'static str, value: impl Display)

Feeds self with the oauth_consumer_key parameter part of the signature base string.

default_key argument is passed just for the convenience of implementors and is always "oauth_consumer_key".

The default implementation forwards to the parameter method.

fn nonce(&mut self, default_key: &'static str, value: impl Display)

Feeds self with the oauth_nonce parameter part of the signature base string.

default_key argument is passed just for the convenience of implementors and is always "oauth_nonce".

The default implementation forwards to the parameter method.

fn use_nonce(&self) -> bool

If this method returns false, Signer will not emit the oauth_nonce part of the signature base string.

The default implementation returns true.

fn signature_method(
    &mut self,
    default_key: &'static str,
    default_value: &'static str
)

Feeds self with the oauth_signature_method parameter part of the signature base string.

default_key and default_value arguments are passed just for the convenience of implementors and are always "oauth_signature_method" and self.get_signature_method().name() respectively.

The default implementation forwards to the parameter method.

fn timestamp(&mut self, default_key: &'static str, value: u64)

Feeds self with the oauth_timestamp parameter part of the signature base string.

default_key argument is passed just for the convenience of implementors and is always "oauth_timestamp".

The default implementation forwards to the parameter method.

fn use_timestamp(&self) -> bool

If this method returns false, Signer will not emit the oauth_nonce part of the signature base string.

The default implementation returns true.

fn token(&mut self, default_key: &'static str, value: impl Display)

Feeds self with the oauth_token parameter part of the signature base string.

default_key argument is passed just for the convenience of implementors and is always "oauth_token".

The default implementation forwards to the parameter method.

fn verifier(&mut self, default_key: &'static str, value: impl Display)

Feeds self with the oauth_verifier parameter part of the signature base string.

default_key argument is passed just for the convenience of implementors and is always "oauth_verifier".

The default implementation forwards to the parameter method.

fn version(&mut self, default_key: &'static str, default_value: &'static str)

Feeds self with the oauth_version parameter part of the signature base string.

default_key and default_value arguments are passed just for the convenience of implementors and are always "oauth_version" and "1.0" respectively.

The default implementation forwards to the parameter method.

Loading content...

Implementors

impl Sign for HmacSha1Sign[src]

type Signature = HmacSha1Signature

impl Sign for IdentitySign[src]

type Signature = String

impl Sign for PlaintextSign[src]

type Signature = String

Loading content...