Skip to content

Commit 6df8858

Browse files
authored
Update base64 to 0.21 (#1725)
1 parent 1d90496 commit 6df8858

File tree

6 files changed

+27
-9
lines changed

6 files changed

+27
-9
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ __rustls = ["hyper-rustls", "tokio-rustls", "rustls", "__tls", "rustls-pemfile"]
7676
__internal_proxy_sys_no_cache = []
7777

7878
[dependencies]
79-
base64 = "0.20"
79+
base64 = "0.21"
8080
http = "0.2"
8181
url = "2.2"
8282
bytes = "1.0"

src/async_impl/request.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use std::future::Future;
44
use std::io::Write;
55
use std::time::Duration;
66

7-
use base64::write::EncoderWriter as Base64Encoder;
87
use serde::Serialize;
98
#[cfg(feature = "json")]
109
use serde_json;
@@ -17,6 +16,7 @@ use super::response::Response;
1716
#[cfg(feature = "multipart")]
1817
use crate::header::CONTENT_LENGTH;
1918
use crate::header::{HeaderMap, HeaderName, HeaderValue, CONTENT_TYPE};
19+
use crate::util::base64;
2020
use crate::{Method, Url};
2121
use http::{request::Parts, Request as HttpRequest, Version};
2222

@@ -253,8 +253,7 @@ impl RequestBuilder {
253253
{
254254
let mut header_value = b"Basic ".to_vec();
255255
{
256-
let mut encoder =
257-
Base64Encoder::from(&mut header_value, &base64::engine::DEFAULT_ENGINE);
256+
let mut encoder = base64::encoder(&mut header_value);
258257
// The unwraps here are fine because Vec::write* is infallible.
259258
write!(encoder, "{}:", username).unwrap();
260259
if let Some(password) = password {

src/blocking/request.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use std::convert::TryFrom;
22
use std::fmt;
33
use std::time::Duration;
44

5-
use base64::encode;
65
use http::{request::Parts, Request as HttpRequest, Version};
76
use serde::Serialize;
87
#[cfg(feature = "json")]
@@ -14,6 +13,7 @@ use super::body::{self, Body};
1413
use super::multipart;
1514
use super::Client;
1615
use crate::header::{HeaderMap, HeaderName, HeaderValue, CONTENT_TYPE};
16+
use crate::util::base64;
1717
use crate::{async_impl, Method, Url};
1818

1919
/// A request which can be executed with `Client::execute()`.
@@ -270,7 +270,7 @@ impl RequestBuilder {
270270
Some(password) => format!("{}:{}", username, password),
271271
None => format!("{}:", username),
272272
};
273-
let header_value = format!("Basic {}", encode(&auth));
273+
let header_value = format!("Basic {}", base64::encode(&auth));
274274
self.header_sensitive(crate::header::AUTHORIZATION, &*header_value, true)
275275
}
276276

src/proxy.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use std::net::SocketAddr;
44
use std::sync::Arc;
55

66
use crate::into_url::{IntoUrl, IntoUrlSealed};
7+
use crate::util::base64;
78
use crate::Url;
89
use http::{header::HeaderValue, Uri};
910
use ipnet::IpNet;

src/util.rs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
11
use crate::header::{Entry, HeaderMap, OccupiedEntry};
22

3+
pub(crate) mod base64 {
4+
use std::io;
5+
6+
use base64::engine::GeneralPurpose;
7+
use base64::prelude::BASE64_STANDARD;
8+
use base64::write::EncoderWriter;
9+
10+
if_hyper! {
11+
pub fn encode<T: AsRef<[u8]>>(input: T) -> String {
12+
use base64::Engine;
13+
BASE64_STANDARD.encode(input)
14+
}
15+
}
16+
17+
pub fn encoder<'a, W: io::Write>(delegate: W) -> EncoderWriter<'a, GeneralPurpose, W> {
18+
EncoderWriter::new(delegate, &BASE64_STANDARD)
19+
}
20+
}
21+
322
// xor-shift
423
#[cfg(not(target_arch = "wasm32"))]
524
pub(crate) fn fast_random() -> u64 {

src/wasm/request.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use std::convert::TryFrom;
22
use std::fmt;
33
use std::io::Write;
44

5-
use base64::write::EncoderWriter as Base64Encoder;
65
use bytes::Bytes;
76
use http::{request::Parts, Method, Request as HttpRequest};
87
use serde::Serialize;
@@ -13,6 +12,7 @@ use web_sys::RequestCredentials;
1312

1413
use super::{Body, Client, Response};
1514
use crate::header::{HeaderMap, HeaderName, HeaderValue, CONTENT_TYPE};
15+
use crate::util::base64;
1616

1717
/// A request which can be executed with `Client::execute()`.
1818
pub struct Request {
@@ -216,8 +216,7 @@ impl RequestBuilder {
216216
{
217217
let mut header_value = b"Basic ".to_vec();
218218
{
219-
let mut encoder =
220-
Base64Encoder::from(&mut header_value, &base64::engine::DEFAULT_ENGINE);
219+
let mut encoder = base64::encoder(&mut header_value);
221220
// The unwraps here are fine because Vec::write* is infallible.
222221
write!(encoder, "{}:", username).unwrap();
223222
if let Some(password) = password {

0 commit comments

Comments
 (0)