### 4 releases (breaking)

Uses old Rust 2015

0.4.0 | Jul 18, 2021 |
---|---|

0.3.0 | Dec 28, 2020 |

0.2.0 | Nov 6, 2018 |

0.1.0 | Nov 4, 2018 |

#**1601** in Cryptography

**559** downloads per month

Used in **8** crates
(3 directly)

**ISC**license

10KB

80 lines

# rsa_public_encrypt_pkcs1

RSA PKCS#1 public key encryption using an ASN.1 DER encoded public key.

Implemented in pure Rust based on RFC8017: PKCS #1: RSA Cryptography Specifications Version 2.2, section 7.2.1 RSAES-PKCS1-v1_5.

**Warning: Use at your own risk. Not extensively tested or reviewed. May contain serious bugs.**

See also: rust-openssl. Example code written for rust-openssl:

` ``let` `mut` shared_e `=` `vec!``[``0``;` rsa`.``size``(``)` `as` `usize``]``;`
`let` `mut` token_e `=` `vec!``[``0``;` rsa`.``size``(``)` `as` `usize``]``;`
rsa`.``public_encrypt``(``&`shared`,` `&``mut` shared_e`,` `Padding``::``PKCS1``)``?``;`
rsa`.``public_encrypt``(``&`packet`.`verify_token`.`data`,` `&``mut` token_e`,` `Padding``::``PKCS1``)``?``;`

could be rewritten using this crate as follows:

` ``let` shared_e `=` `rsa_public_encrypt_pkcs1``::`encrypt`(``&`packet`.`public_key`.`data`,` `&`shared`)``?``;`
`let` token_e `=` `rsa_public_encrypt_pkcs1``::`encrypt`(``&`packet`.`public_key`.`data`,` `&`packet`.`verify_token`.`data`)``?``;`

#### Dependencies

~2.2–3MB

~58K SLoC