@@ -79,8 +79,45 @@ $rsa->setParameters($parameters);
7979$encryptedTest = $rsa->encrypt($plainText);
8080
8181$decryptedText = $rsa->decrypt($encryptedTest);
82+ ```
83+
84+ ### Exporting and importing keys
85+
86+ To use keys for later in case of encrypt/decrypt data is important to store them on some place. For this I created Readers
87+ and Writers. To export keys use Writer as example shows bellow:
88+
89+ ``` php
90+ $parameters = new RSAParameters();
91+ $parameters->generateKeys();
92+ $locator = new TestingParametersLocator();
8293
94+ $writer = new RsaParametersWriter($locator);
95+ $writer->write($parameters);
8396```
97+ If you want implement own Writers they must implement ` MayMeow\Cryptography\Tools\RsaParametersWriterInterface ` .
98+
99+ Importing keys can be done as on example below:
100+
101+ ``` php
102+ $reader = new RsaParametersReader($locator);
103+ $parameters2 = $reader->read();
104+
105+ $csp2 = new RSACryptoServiceProvider();
106+ $csp2->setParameters($parameters2);
107+ ```
108+
109+ Like on writers you can implement your own Readers too. If you do so your new reader have to implement
110+ ` MayMeow\Cryptography\Tools\RsaParametersReaderInterface `
111+
112+ ### Locators
113+
114+ Both reader and writer in above example is using Locator. Locators are classes which can return string representation
115+ of location where are stored RSAParameters parts. This can be database table, model, table field, path in filesystem
116+ and more. Interfaces for Reader and Writer not required to use one, but I recommend it.
117+
118+ If you want implement your own locator, this has to implement ` MayMeow\Cryptography\Tools\RSAParametersLocatorInterface ` .
119+
120+ As example, you can check Tools in test folder.
84121
85122### Cryptographic key derivation
86123
0 commit comments