Skip to content

Commit

Permalink
Fix missing entrypoints and add build-time validation
Browse files Browse the repository at this point in the history
  • Loading branch information
vcsjones authored Jun 27, 2021
1 parent 02f70d0 commit c75b22f
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,17 @@ if (GEN_SHARED_LIB)
target_link_libraries(System.Security.Cryptography.Native.Apple
${NATIVE_LIBS_EXTRA}
)

if (NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS)
add_custom_command(TARGET System.Security.Cryptography.Native.Apple POST_BUILD
COMMENT "Verifying System.Security.Cryptography.Native.Apple points against entrypoints.c "
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../verify-entrypoints.sh
$<TARGET_FILE:System.Security.Cryptography.Native.Apple>
${CMAKE_CURRENT_SOURCE_DIR}/../../Unix/System.Security.Cryptography.Native.Apple/entrypoints.c
${CMAKE_NM}
VERBATIM
)
endif()
endif()

if (GEN_SHARED_LIB)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,11 @@ static const Entry s_cryptoAppleNative[] =
DllImportEntry(AppleCryptoNative_DigestFinal)
DllImportEntry(AppleCryptoNative_DigestCurrent)
DllImportEntry(AppleCryptoNative_DigestOneShot)
DllImportEntry(AppleCryptoNative_DigestReset)
DllImportEntry(AppleCryptoNative_EccGenerateKey)
DllImportEntry(AppleCryptoNative_EccGetKeySizeInBits)
DllImportEntry(AppleCryptoNative_EcdhKeyAgree)
DllImportEntry(AppleCryptoNative_GetRandomBytes)
DllImportEntry(AppleCryptoNative_HmacFree)
DllImportEntry(AppleCryptoNative_HmacCreate)
DllImportEntry(AppleCryptoNative_HmacInit)
Expand All @@ -40,14 +43,22 @@ static const Entry s_cryptoAppleNative[] =
DllImportEntry(AppleCryptoNative_HmacCurrent)
DllImportEntry(AppleCryptoNative_HmacOneShot)
DllImportEntry(AppleCryptoNative_SecKeychainItemCopyKeychain)
DllImportEntry(AppleCryptoNative_SecKeychainCopyDefault)
DllImportEntry(AppleCryptoNative_SecKeychainCreate)
DllImportEntry(AppleCryptoNative_SecKeychainDelete)
DllImportEntry(AppleCryptoNative_SecKeychainCopyDefault)
DllImportEntry(AppleCryptoNative_SecKeychainEnumerateCerts)
DllImportEntry(AppleCryptoNative_SecKeychainOpen)
DllImportEntry(AppleCryptoNative_SecKeychainUnlock)
DllImportEntry(AppleCryptoNative_SetKeychainNeverLock)
DllImportEntry(AppleCryptoNative_SecKeychainEnumerateIdentities)
DllImportEntry(AppleCryptoNative_GetRandomBytes)
DllImportEntry(AppleCryptoNative_SetKeychainNeverLock)
DllImportEntry(AppleCryptoNative_SslCopyCADistinguishedNames)
DllImportEntry(AppleCryptoNative_SslCopyCertChain)
DllImportEntry(AppleCryptoNative_SslIsHostnameMatch)
DllImportEntry(AppleCryptoNative_SslRead)
DllImportEntry(AppleCryptoNative_SslSetBreakOnClientAuth)
DllImportEntry(AppleCryptoNative_SslSetBreakOnServerAuth)
DllImportEntry(AppleCryptoNative_SslSetIoCallbacks)
DllImportEntry(AppleCryptoNative_SslWrite)
DllImportEntry(AppleCryptoNative_RsaGenerateKey)
DllImportEntry(AppleCryptoNative_RsaDecryptOaep)
DllImportEntry(AppleCryptoNative_RsaDecryptPkcs)
Expand Down Expand Up @@ -87,7 +98,10 @@ static const Entry s_cryptoAppleNative[] =
DllImportEntry(AppleCryptoNative_StoreEnumerateMachineRoot)
DllImportEntry(AppleCryptoNative_StoreEnumerateUserDisallowed)
DllImportEntry(AppleCryptoNative_StoreEnumerateMachineDisallowed)
DllImportEntry(AppleCryptoNative_X509ChainCreate)
DllImportEntry(AppleCryptoNative_X509DemuxAndRetainHandle)
DllImportEntry(AppleCryptoNative_X509GetContentType)
DllImportEntry(AppleCryptoNative_X509GetPublicKey)
DllImportEntry(AppleCryptoNative_X509CopyCertFromIdentity)
DllImportEntry(AppleCryptoNative_X509CopyPrivateKeyFromIdentity)
DllImportEntry(AppleCryptoNative_X509ImportCollection)
Expand All @@ -105,6 +119,8 @@ static const Entry s_cryptoAppleNative[] =
DllImportEntry(AppleCryptoNative_X509ChainGetStatusAtIndex)
DllImportEntry(AppleCryptoNative_GetOSStatusForChainStatus)
DllImportEntry(AppleCryptoNative_X509ChainSetTrustAnchorCertificates)
DllImportEntry(AppleCryptoNative_X509StoreAddCertificate)
DllImportEntry(AppleCryptoNative_X509StoreRemoveCertificate)
DllImportEntry(AppleCryptoNative_Pbkdf2)
DllImportEntry(AppleCryptoNative_X509GetSubjectSummary)
};
Expand Down

0 comments on commit c75b22f

Please sign in to comment.