mirror of
https://github.com/phpseclib/phpseclib.git
synced 2024-12-28 04:05:15 +00:00
Merge branch '3.0'
This commit is contained in:
commit
e6dd9f6492
@ -800,15 +800,15 @@ abstract class RSA extends AsymmetricKey
|
||||
self::ENCRYPTION_PKCS1,
|
||||
self::ENCRYPTION_NONE,
|
||||
];
|
||||
$numSelected = 0;
|
||||
$encryptedCount = 0;
|
||||
$selected = 0;
|
||||
foreach ($masks as $mask) {
|
||||
if ($padding & $mask) {
|
||||
$selected = $mask;
|
||||
$numSelected++;
|
||||
$encryptedCount++;
|
||||
}
|
||||
}
|
||||
if ($numSelected > 1) {
|
||||
if ($encryptedCount > 1) {
|
||||
throw new InconsistentSetupException('Multiple encryption padding modes have been selected; at most only one should be selected');
|
||||
}
|
||||
$encryptionPadding = $selected;
|
||||
@ -818,22 +818,26 @@ abstract class RSA extends AsymmetricKey
|
||||
self::SIGNATURE_RELAXED_PKCS1,
|
||||
self::SIGNATURE_PKCS1,
|
||||
];
|
||||
$numSelected = 0;
|
||||
$signatureCount = 0;
|
||||
$selected = 0;
|
||||
foreach ($masks as $mask) {
|
||||
if ($padding & $mask) {
|
||||
$selected = $mask;
|
||||
$numSelected++;
|
||||
$signatureCount++;
|
||||
}
|
||||
}
|
||||
if ($numSelected > 1) {
|
||||
if ($signatureCount > 1) {
|
||||
throw new InconsistentSetupException('Multiple signature padding modes have been selected; at most only one should be selected');
|
||||
}
|
||||
$signaturePadding = $selected;
|
||||
|
||||
$new = clone $this;
|
||||
$new->encryptionPadding = $encryptionPadding;
|
||||
$new->signaturePadding = $signaturePadding;
|
||||
if ($encryptedCount) {
|
||||
$new->encryptionPadding = $encryptionPadding;
|
||||
}
|
||||
if ($signatureCount) {
|
||||
$new->signaturePadding = $signaturePadding;
|
||||
}
|
||||
return $new;
|
||||
}
|
||||
|
||||
|
@ -256,4 +256,19 @@ zUlir0ACPypC1Q==
|
||||
|
||||
$this->assertSame($data, $decrypted);
|
||||
}
|
||||
|
||||
public function testSettingOnePadding()
|
||||
{
|
||||
$pub = <<<HERE
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MF0wDQYJKoZIhvcNAQEBBQADTAAwSQJCAmdYuOvii3I6ya3q/zSeZFoJprgF9fIq
|
||||
k12yS6pCS3c+1wZ9cYFVtgfpSL4XpylLe9EnRT2GRVYCqUkR4AUeTuvnAgMBAAE=
|
||||
-----END PUBLIC KEY-----
|
||||
HERE;
|
||||
|
||||
$rsa = PublicKeyLoader::load($pub);
|
||||
$this->assertTrue((bool) ($rsa->getPadding() & RSA::SIGNATURE_PSS));
|
||||
$rsa = $rsa->withPadding(RSA::ENCRYPTION_NONE);
|
||||
$this->assertTrue((bool) ($rsa->getPadding() & RSA::SIGNATURE_PSS));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user