Skip to content

Commit 67f7175

Browse files
authored
Remove base64 crate (#63)
* Remove base64 crate * Fix audit error, enable only clock feature for chrono
1 parent 63d409c commit 67f7175

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

Cargo.toml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ readme = "./README.md"
1010
license = "MIT"
1111

1212
[dependencies]
13-
base64 = {version = "0.13", optional = true}
14-
chrono = {version = "0.4", optional = true}
13+
chrono = {version = "0.4", optional = true, default-features = false, features = ["clock"] }
1514
openssl = {version = "0.10", optional = true}
1615
reqwest = {version = "0.11", features = ["json"]}
1716
serde = {version="1.0", features= ["derive"]}
@@ -28,19 +27,19 @@ wiremock = "0.5"
2827
[features]
2928
default = [
3029
"account_balance",
31-
"b2b",
30+
"b2b",
3231
"b2c",
3332
"c2b_register",
3433
"c2b_simulate",
3534
"express_request",
3635
"transaction_reversal",
3736
"transaction_status"
3837
]
39-
account_balance = ["dep:openssl", "dep:base64"]
40-
b2b = ["dep:openssl", "dep:base64"]
41-
b2c = ["dep:openssl", "dep:base64"]
38+
account_balance = ["dep:openssl"]
39+
b2b = ["dep:openssl"]
40+
b2c = ["dep:openssl"]
4241
c2b_register = []
4342
c2b_simulate = []
44-
express_request = ["dep:chrono", "dep:base64"]
45-
transaction_reversal = ["dep:openssl", "dep:base64"]
46-
transaction_status= ["dep:openssl", "dep:base64"]
43+
express_request = ["dep:chrono"]
44+
transaction_reversal = ["dep:openssl"]
45+
transaction_status= ["dep:openssl"]

src/client.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use crate::services::{
44
MpesaExpressRequestBuilder, TransactionReversalBuilder, TransactionStatusBuilder,
55
};
66
use crate::MpesaError;
7+
use openssl::base64;
78
use openssl::rsa::Padding;
89
use openssl::x509::X509;
910
use reqwest::Client as HttpClient;
@@ -335,7 +336,7 @@ impl<'mpesa, Env: ApiEnvironment> Mpesa<Env> {
335336
&mut buffer,
336337
Padding::PKCS1,
337338
)?;
338-
Ok(base64::encode(buffer))
339+
Ok(base64::encode_block(&buffer))
339340
}
340341
}
341342

src/services/express_request.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use crate::constants::CommandId;
33
use crate::environment::ApiEnvironment;
44
use crate::errors::MpesaError;
55
use chrono::prelude::Local;
6+
use openssl::base64;
67
use serde::{Deserialize, Serialize};
78

89
/// Source: [test credentials](https://developer.safaricom.co.ke/test_credentials)
@@ -99,7 +100,7 @@ impl<'mpesa, Env: ApiEnvironment> MpesaExpressRequestBuilder<'mpesa, Env> {
99100
/// Returns the encoded password and a timestamp string
100101
fn generate_password_and_timestamp(&self) -> (String, String) {
101102
let timestamp = Local::now().format("%Y%m%d%H%M%S").to_string();
102-
let encoded_password = base64::encode(
103+
let encoded_password = base64::encode_block(
103104
format!(
104105
"{}{}{}",
105106
self.business_short_code(),

0 commit comments

Comments
 (0)