<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "OpenSSL",
  "identifier" : "/documentation/OpenSSL/RSA",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "OpenSSL"
    ],
    "preciseIdentifier" : "s:7OpenSSL3RSAO"
  },
  "title" : "RSA"
}
-->

# RSA

Namespace for RSA cryptographic types backed by OpenSSL.

```
enum RSA
```

## Overview

`RSA` groups the Swift types that represent RSA keys and, in future
releases, signing and verification operations. The namespace is a
caseless enum so it cannot be instantiated; all members are nested
types or static functions.

The currently shipping surface is PEM ingestion: [`RSA.PrivateKey`](/documentation/OpenSSL/RSA/PrivateKey) and
[`RSA.PublicKey`](/documentation/OpenSSL/RSA/PublicKey) accept PEM-encoded key material (PKCS#1, RFC 8017 or
PKCS#8, RFC 5958) and retain the original bytes for later use. These
types exist primarily so consumers can pass typed values through their
own APIs while the underlying provider integration is still in progress.

> Warning: Signing (`RSA.PrivateKey`) and verification (`RSA.PublicKey`)
> are **not yet functional**. They require the OpenSSL provider layer
> (`OSSL_PROVIDER_load`, `EVP_PKEY_sign_init`), which is not wired up in
> this package. See <doc://OpenSSL/documentation/OpenSSL/SecurityConsiderations> for the full list of
> MVP gaps before depending on this in production.

> SeeAlso: ``doc://OpenSSL/documentation/OpenSSL/RSA/PrivateKey``, ``doc://OpenSSL/documentation/OpenSSL/RSA/PublicKey``, ``doc://OpenSSL/documentation/OpenSSL/OpenSSLError``