Skip to content

Commit df67cdd

Browse files
committed
Make ASCII armor optional
Signed-off-by: András Veres-Szentkirályi <vsza@vsza.hu>
1 parent 37cb423 commit df67cdd

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/encrypt.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ use crate::cert::Cert;
1414
use crate::signer::PySigner;
1515

1616
#[pyfunction]
17-
#[pyo3(signature = (recipients, bytes, signer=None))]
17+
#[pyo3(signature = (recipients, bytes, signer=None, *, armor=true))]
1818
pub fn encrypt(
1919
recipients: Vec<PyRef<Cert>>,
2020
bytes: &[u8],
2121
signer: Option<PySigner>,
22+
armor: bool,
2223
) -> PyResult<Cow<'static, [u8]>> {
2324
let mode = KeyFlags::empty()
2425
.set_storage_encryption()
@@ -67,7 +68,11 @@ pub fn encrypt(
6768

6869
let message = Message::new(&mut sink);
6970

70-
let message = Armorer::new(message).build()?;
71+
let message = if armor {
72+
Armorer::new(message).build()?
73+
} else {
74+
message
75+
};
7176

7277
let mut message = Encryptor::for_recipients(
7378
message,

src/sign.rs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,21 @@ pub enum SignatureMode {
2020
}
2121

2222
#[pyfunction]
23-
#[pyo3(signature = (signer, bytes, *, mode=&SignatureMode::Inline))]
24-
pub fn sign(signer: PySigner, bytes: &[u8], mode: &SignatureMode) -> PyResult<Cow<'static, [u8]>> {
23+
#[pyo3(signature = (signer, bytes, *, mode=&SignatureMode::Inline, armor=true))]
24+
pub fn sign(
25+
signer: PySigner,
26+
bytes: &[u8],
27+
mode: &SignatureMode,
28+
armor: bool,
29+
) -> PyResult<Cow<'static, [u8]>> {
2530
use sequoia_openpgp::serialize::stream::Signer;
2631

2732
let mut sink = vec![];
2833
{
2934
let message = Message::new(&mut sink);
30-
let message = if mode == &SignatureMode::Inline {
35+
let message = if mode == &SignatureMode::Inline && armor {
3136
Armorer::new(message).kind(armor::Kind::Message).build()?
32-
} else if mode == &SignatureMode::Detached {
37+
} else if mode == &SignatureMode::Detached && armor {
3338
Armorer::new(message).kind(armor::Kind::Signature).build()?
3439
} else {
3540
message

0 commit comments

Comments
 (0)