#cloud-front #aws #signed-url #signed-cookie

cloudfront_sign

Utility module for AWS CloudFront to generate signed URLs and cookies

5 unstable releases

0.3.0 Feb 25, 2024
0.2.1 Nov 13, 2022
0.2.0 Nov 13, 2022
0.1.2 Mar 27, 2021
0.1.1 Mar 17, 2021

#386 in Cryptography

Download history 206/week @ 2023-12-18 19/week @ 2023-12-25 171/week @ 2024-01-01 300/week @ 2024-01-08 254/week @ 2024-01-15 318/week @ 2024-01-22 405/week @ 2024-01-29 370/week @ 2024-02-05 510/week @ 2024-02-12 362/week @ 2024-02-19 533/week @ 2024-02-26 407/week @ 2024-03-04 379/week @ 2024-03-11 400/week @ 2024-03-18 518/week @ 2024-03-25 490/week @ 2024-04-01

1,793 downloads per month

MIT license

15KB
204 lines

AWS CloudFront Sign Utility

Generating signed URLs for CloudFront links is a little more tricky than for S3. It's because signature generation for S3 URLs is handled a bit differently than CloudFront URLs. The Rusoto library is in maintenance mode and not accepting more features. Therefore we created this simple utility library to sign CloudFront URLs in Rust.

Examples

Getting signed cookies.

use std::fs;
use cloudfront_sign::*;
let private_key = fs::read_to_string("tests/data/private_key.pem").unwrap();
let options = SignedOptions {
    key_pair_id: String::from("SOMEKEYPAIRID"),
    private_key: private_key,
    ..Default::default()
};
let cookies = get_signed_cookie("https://example.com", &options).unwrap();

Getting signed URLS.

use std::fs;
use cloudfront_sign::*;
let private_key = fs::read_to_string("tests/data/private_key.pem").unwrap();
let options = SignedOptions {
    key_pair_id: String::from("SOMEKEYPAIRID"),
    private_key: private_key,
    ..Default::default()
};
let signed_url = get_signed_url("https://example.com", &options).unwrap();

Dependencies

~4.5MB
~91K SLoC