]> git.saurik.com Git - apple/security.git/blobdiff - OSX/libsecurity_transform/lib/EncryptTransform.cpp
Security-57740.31.2.tar.gz
[apple/security.git] / OSX / libsecurity_transform / lib / EncryptTransform.cpp
index 8c732c0c5a8f0e0989e3c7e5f010cafb19d7662d..9b8d7d89fa14d0563f130fc88ca85b2e4decad3b 100644 (file)
@@ -28,7 +28,7 @@
 #include "Utilities.h"
 #include "SecDigestTransform.h"
 #include "Digest.h"
-#include <Security/SecRandom.h>
+#include <Security/SecRandomP.h>
 #include <Security/SecKey.h>
 #include "SecMaskGenerationFunctionTransform.h"
 
@@ -627,22 +627,16 @@ CFDataRef EncryptDecryptBase::apply_oaep_padding(CFDataRef dataValue)
        seed = (CFDataRef)this->GetAttribute(CFSTR("FixedSeedForOAEPTesting"));
        raw_seed = NULL;
        if (seed) {
-               raw_seed = (UInt8*)CFDataGetBytePtr(seed);
                (void)transforms_assume(hLen == CFDataGetLength(seed));
                CFRetain(seed);
        } else {
-               raw_seed = (UInt8*)malloc(hLen);
-               if (!raw_seed) {
-                       error = GetNoMemoryErrorAndRetain();
-                       goto out;
-               }
-               SecRandomCopyBytes(kSecRandomDefault, hLen, raw_seed);
-               seed = CFDataCreateWithBytesNoCopy(NULL, raw_seed, hLen, kCFAllocatorMalloc);
+               seed = SecRandomCopyData(kSecRandomDefault, hLen);
                if (!seed) {
-                       free(raw_seed);
                        error = GetNoMemoryErrorAndRetain();
+                       goto out;
                }
        }
+    raw_seed = (UInt8*)CFDataGetBytePtr(seed);
 
        // (7) Let dbMask = MGF (seed, emLen − hLen).
        mgf_dbMask = transforms_assume(SecCreateMaskGenerationFunctionTransform(hashAlgo, desired_message_length - hLen, &error));