SecKeyRawVerify equivalent function on Mac OS X?

I am trying to create a function that does the same job as iOS SecKeyRawVerify(verifies digital signature) for MacOSX (> 10.6), but so far I have not been able to do this. I wonder why Apple will provide such a feature for iOS and not do another job for OSX?

Any help appreciated the great time, I struggled with this all day.

Short description of the function for iOS:

SecKeyRawVerify

Verifies digital signature.

OSStatus SecKeyRawVerify (
   SecKeyRef key,
   SecPadding padding,
   const uint8_t *signedData,
   size_t signedDataLen,
   const uint8_t *sig,
   size_t sigLen
);

Parameters

key
The public key with which you can verify the data.

padding
. " ". kSecPaddingPKCS1SHA1, PKCS1 DER , SHA1 . kSecPaddingNone, .

signedData
, . , .

signedDataLen
signedData.

sig .

sigLen sig.

. . ", " . "


iOS 2.0 .

+3
1

In OS X, you must use security transformations, for example:

CFErrorRef error;
SecTransformRef verifier = SecVerifyTransformCreate(publicKey,
                                                    (CFDataRef)signature,
                                                    &error);
if (error) { CFShow(error); exit(-1); }

SecTransformSetAttribute(verifier,
                         kSecPaddingKey,
                         kSecPaddingPKCS1Key,
                         &error);
if (error) { CFShow(error); exit(-1); }


/* Specify digest type */
SecTransformSetAttribute(verifier,
                         kSecDigestTypeAttribute,
                         kSecDigestSHA1,
                         &error);
if (error) { CFShow(error); exit(-1); }

/* Raw data */
SecTransformSetAttribute(verifier,
                         kSecTransformInputAttributeName,
                         dataWithoutSignature,
                         &error);

CFTypeRef result = SecTransformExecute(verifier, &error);
if (error) {
    CFShow(error);
    exit(-1);
}

if (result == kCFBooleanTrue)
{
    NSLog(@"VERIFY: success.");
}
else
{
    NSLog(@"VERIFY: failure, again...");
}
-1
source