Description: use older crate base64
 Needed to match Debian-packaged base64 v0.13.0.
 .
 This essentially reverts upstream git commit 9bf4e41.
Author: Jonas Smedegaard <dr@jones.dk>
Bug-Debian: https://bugs.debian.org/1026812
Last-Update: 2022-12-22
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,7 +22,7 @@
 ar = "0.9"
 async-trait = "0.1"
 atty = "0.2.6"
-base64 = "0.20"
+base64 = "0.13"
 bincode = "1"
 blake3 = "1"
 byteorder = "1.0"
--- a/src/bin/sccache-dist/main.rs
+++ b/src/bin/sccache-dist/main.rs
@@ -35,7 +35,6 @@
     UpdateJobStateResult,
 };
 use sccache::util::daemonize;
-use sccache::util::BASE64_URL_SAFE_ENGINE;
 use std::collections::{btree_map, BTreeMap, HashMap, HashSet};
 use std::env;
 use std::io;
@@ -145,7 +144,7 @@
             let mut bytes = vec![0; num_bytes];
             OsRng.fill_bytes(&mut bytes);
             // As long as it can be copied, it doesn't matter if this is base64 or hex etc
-            println!("{}", base64::encode_engine(&bytes, &BASE64_URL_SAFE_ENGINE));
+            println!("{}", base64::encode_config(&bytes, base64::URL_SAFE_NO_PAD));
             Ok(0)
         }
         Command::Auth(AuthSubcommand::JwtHS256ServerToken {
@@ -153,7 +152,7 @@
             server_id,
         }) => {
             let header = jwt::Header::new(jwt::Algorithm::HS256);
-            let secret_key = base64::decode_engine(&secret_key, &BASE64_URL_SAFE_ENGINE)?;
+            let secret_key = base64::decode_config(&secret_key, base64::URL_SAFE_NO_PAD)?;
             let token = create_jwt_server_token(server_id, &header, &secret_key)
                 .context("Failed to create server token")?;
             println!("{}", token);
@@ -198,7 +197,7 @@
                     Box::new(move |server_token| check_server_token(server_token, &token))
                 }
                 scheduler_config::ServerAuth::JwtHS256 { secret_key } => {
-                    let secret_key = base64::decode_engine(&secret_key, &BASE64_URL_SAFE_ENGINE)
+                    let secret_key = base64::decode_config(&secret_key, base64::URL_SAFE_NO_PAD)
                         .context("Secret key base64 invalid")?;
                     if secret_key.len() != 256 / 8 {
                         bail!("Size of secret key incorrect")
--- a/src/bin/sccache-dist/token_check.rs
+++ b/src/bin/sccache-dist/token_check.rs
@@ -2,7 +2,6 @@
 use anyhow::{bail, Context, Result};
 use sccache::dist::http::{ClientAuthCheck, ClientVisibleMsg};
 use sccache::util::RequestExt;
-use sccache::util::BASE64_URL_SAFE_ENGINE;
 use std::collections::HashMap;
 use std::result::Result as StdResult;
 use std::sync::Mutex;
@@ -30,9 +29,9 @@
         }
 
         // JWK is big-endian, openssl bignum from_slice is big-endian
-        let n = base64::decode_engine(&self.n, &BASE64_URL_SAFE_ENGINE)
+        let n = base64::decode_config(&self.n, base64::URL_SAFE)
             .context("Failed to base64 decode n")?;
-        let e = base64::decode_engine(&self.e, &BASE64_URL_SAFE_ENGINE)
+        let e = base64::decode_config(&self.e, base64::URL_SAFE)
             .context("Failed to base64 decode e")?;
         let n_bn = openssl::bn::BigNum::from_slice(&n)
             .context("Failed to create openssl bignum from n")?;
--- a/src/dist/client_auth.rs
+++ b/src/dist/client_auth.rs
@@ -86,7 +86,6 @@
         html_response, json_response, query_pairs, MIN_TOKEN_VALIDITY, MIN_TOKEN_VALIDITY_WARNING,
         REDIRECT_WITH_AUTH_JSON,
     };
-    use crate::util::BASE64_URL_SAFE_ENGINE;
     use futures::channel::oneshot;
     use hyper::{Body, Method, Request, Response, StatusCode};
     use rand::{rngs::OsRng, RngCore};
@@ -111,7 +110,6 @@
     // Code response - https://tools.ietf.org/html/rfc6749#section-4.1.2
     const CODE_RESULT_PARAM: &str = "code";
     const STATE_RESULT_PARAM: &str = "state";
-
     // Token request - https://tools.ietf.org/html/rfc7636#section-4.5
     #[derive(Serialize)]
     struct TokenRequest<'a> {
@@ -147,10 +145,10 @@
     pub fn generate_verifier_and_challenge() -> Result<(String, String)> {
         let mut code_verifier_bytes = vec![0; NUM_CODE_VERIFIER_BYTES];
         OsRng.fill_bytes(&mut code_verifier_bytes);
-        let code_verifier = base64::encode_engine(&code_verifier_bytes, &BASE64_URL_SAFE_ENGINE);
+        let code_verifier = base64::encode_config(&code_verifier_bytes, base64::URL_SAFE_NO_PAD);
         let mut hasher = Sha256::new();
         hasher.update(&code_verifier);
-        let code_challenge = base64::encode_engine(&hasher.finalize(), &BASE64_URL_SAFE_ENGINE);
+        let code_challenge = base64::encode_config(&hasher.finalize(), base64::URL_SAFE_NO_PAD);
         Ok((code_verifier, code_challenge))
     }
 
--- a/src/util.rs
+++ b/src/util.rs
@@ -29,13 +29,6 @@
 
 use crate::errors::*;
 
-/// The url safe engine for base64.
-pub const BASE64_URL_SAFE_ENGINE: base64::engine::fast_portable::FastPortable =
-    base64::engine::fast_portable::FastPortable::from(
-        &base64::alphabet::URL_SAFE,
-        base64::engine::fast_portable::NO_PAD,
-    );
-
 #[derive(Clone)]
 pub struct Digest {
     inner: blake3_Hasher,
