Browse Source

Return random values for unhandled/unexpected encryption variants

Marcin Krzyzanowski 2 năm trước cách đây
mục cha
commit
7390485466
1 tập tin đã thay đổi với 9 bổ sung0 xóa
  1. 9 0
      Sources/CryptoSwift/RSA/RSA+Cipher.swift

+ 9 - 0
Sources/CryptoSwift/RSA/RSA+Cipher.swift

@@ -96,6 +96,9 @@ extension RSA {
           // We need at least 11 bytes of random padding in order to safely encrypt messages (RFC2313 Section 8.1 - Note 6)
           guard blockSize >= bytes.count + 11 else { throw RSA.Error.invalidMessageLengthForEncryption }
           return Padding.eme_pkcs1v15.add(to: bytes, blockSize: blockSize)
+      @unknown default:
+        assertionFailure()
+        return [UInt8](repeating: UInt8.random(in: 0..<UInt8.max), count: bytes.count)
       }
     }
 
@@ -107,6 +110,9 @@ extension RSA {
         case .raw, .pksc1v15:
           // Format the encrypted bytes before returning
           return Array<UInt8>(repeating: 0x00, count: blockSize - bytes.count) + bytes
+      @unknown default:
+        assertionFailure()
+        return [UInt8](repeating: UInt8.random(in: 0..<UInt8.max), count: bytes.count)
       }
     }
 
@@ -121,6 +127,9 @@ extension RSA {
           // Convert the Octet String into an Integer Primitive using the BigInteger `serialize` method
           // (this effectively just prefixes the data with a 0x00 byte indicating that its a positive integer)
           return Padding.eme_pkcs1v15.remove(from: [0x00] + bytes, blockSize: blockSize)
+      @unknown default:
+        assertionFailure()
+        return [UInt8](repeating: UInt8.random(in: 0..<UInt8.max), count: bytes.count)
       }
     }
   }