-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
- Loading branch information
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
|
||
/** | ||
* The RSA-1024 encryption algorithm class. | ||
*/ | ||
|
||
namespace CryptoManana\AsymmetricEncryption; | ||
|
||
use \CryptoManana\Core\Abstractions\MessageEncryption\AbstractRsaEncryption as RsaAlgorithm; | ||
|
||
/** | ||
* Class Rsa1024 - The RSA-1024 encryption algorithm object. | ||
* | ||
* @package CryptoManana\AsymmetricEncryption | ||
*/ | ||
class Rsa1024 extends RsaAlgorithm | ||
{ | ||
/** | ||
* The internal key size measured in raw bytes length for the algorithm | ||
* | ||
* @internal For the current algorithm: 1024 bits (128 bytes) | ||
*/ | ||
const KEY_SIZE = 1024; | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
|
||
/** | ||
* The RSA-2048 encryption algorithm class. | ||
*/ | ||
|
||
namespace CryptoManana\AsymmetricEncryption; | ||
|
||
use \CryptoManana\Core\Abstractions\MessageEncryption\AbstractRsaEncryption as RsaAlgorithm; | ||
|
||
/** | ||
* Class Rsa2048 - The RSA-2048 encryption algorithm object. | ||
* | ||
* @package CryptoManana\AsymmetricEncryption | ||
*/ | ||
class Rsa2048 extends RsaAlgorithm | ||
{ | ||
/** | ||
* The internal key size measured in raw bytes length for the algorithm | ||
* | ||
* @internal For the current algorithm: 2048 bits (256 bytes) | ||
*/ | ||
const KEY_SIZE = 2048; | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
|
||
/** | ||
* The RSA-3072 encryption algorithm class. | ||
*/ | ||
|
||
namespace CryptoManana\AsymmetricEncryption; | ||
|
||
use \CryptoManana\Core\Abstractions\MessageEncryption\AbstractRsaEncryption as RsaAlgorithm; | ||
|
||
/** | ||
* Class Rsa3072 - The RSA-3072 encryption algorithm object. | ||
* | ||
* @package CryptoManana\AsymmetricEncryption | ||
*/ | ||
class Rsa3072 extends RsaAlgorithm | ||
{ | ||
/** | ||
* The internal key size measured in raw bytes length for the algorithm | ||
* | ||
* @internal For the current algorithm: 3072 bits (384 bytes) | ||
*/ | ||
const KEY_SIZE = 3072; | ||
} | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?php | ||
|
||
/** | ||
* The RSA-4096 encryption algorithm class. | ||
*/ | ||
|
||
namespace CryptoManana\AsymmetricEncryption; | ||
|
||
use \CryptoManana\Core\Abstractions\MessageEncryption\AbstractRsaEncryption as RsaAlgorithm; | ||
|
||
/** | ||
* Class Rsa4096 - The RSA-4096 encryption algorithm object. | ||
* | ||
* @package CryptoManana\AsymmetricEncryption | ||
*/ | ||
class Rsa4096 extends RsaAlgorithm | ||
{ | ||
/** | ||
* The internal key size measured in raw bytes length for the algorithm | ||
* | ||
* @internal For the current algorithm: 4096 bits (512 bytes) | ||
*/ | ||
const KEY_SIZE = 4096; | ||
} | ||
|
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
<?php | ||
|
||
/** | ||
* The asymmetric encryption/signature algorithm abstraction specification. | ||
*/ | ||
|
||
namespace CryptoManana\Core\Abstractions\MessageEncryption; | ||
|
||
use \CryptoManana\Core\Interfaces\MessageEncryption\KeyPairInterface as PublicKeyCipher; | ||
use \CryptoManana\Core\Traits\MessageEncryption\KeyPairTrait as PublicPrivateKeyPair; | ||
|
||
/** | ||
* Class AbstractAsymmetricEncryptionAlgorithm - The asymmetric algorithm abstraction representation. | ||
* | ||
* @package CryptoManana\Core\Abstractions\MessageEncryption | ||
* | ||
* @mixin PublicPrivateKeyPair | ||
*/ | ||
abstract class AbstractAsymmetricEncryptionAlgorithm implements PublicKeyCipher | ||
{ | ||
/** | ||
* The asymmetric public and private key capabilities. | ||
* | ||
* {@internal Reusable implementation of `KeyPairInterface`. }} | ||
*/ | ||
use PublicPrivateKeyPair; | ||
|
||
/** | ||
* The internal name of the algorithm. | ||
*/ | ||
const ALGORITHM_NAME = 'none'; | ||
|
||
/** | ||
* The internal key size measured in raw bytes length for the algorithm | ||
*/ | ||
const KEY_SIZE = 0; | ||
|
||
/** | ||
* The private key string property storage. | ||
* | ||
* @var string The private key string value. | ||
*/ | ||
protected $privateKey = ''; | ||
|
||
/** | ||
* The public key string property storage. | ||
* | ||
* @var string The public key string value. | ||
*/ | ||
protected $publicKey = ''; | ||
|
||
/** | ||
* Internal method for the validation of plain data used at encryption/signing operations. | ||
* | ||
* @param string $plainData The plain input string. | ||
* | ||
* @throws \Exception Validation errors. | ||
*/ | ||
abstract protected function validatePlainData($plainData); | ||
|
||
/** | ||
* Internal method for the validation of cipher/signature data used at decryption/verifying operations. | ||
* | ||
* @param string $cipherOrSignatureData The encrypted input string or a signature string. | ||
* | ||
* @throws \Exception Validation errors. | ||
*/ | ||
abstract protected function validateCipherOrSignatureData($cipherOrSignatureData); | ||
|
||
/** | ||
* Asymmetrical algorithm constructor. | ||
*/ | ||
abstract public function __construct(); | ||
} | ||
|