Skip to content

Security macOS xcode16.4 b1

Rolf Bjarne Kvinge edited this page Apr 29, 2025 · 1 revision

#Security.framework

diff -ruN /Applications/Xcode_16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecProtocolMetadata.h /Applications/Xcode_16.4.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecProtocolMetadata.h
--- /Applications/Xcode_16.3.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecProtocolMetadata.h	2025-03-08 05:12:36
+++ /Applications/Xcode_16.4.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Security.framework/Headers/SecProtocolMetadata.h	2025-04-21 06:54:21
@@ -74,11 +74,27 @@
  *
  * @return A NULL-terminated string carrying the negotiated protocol.
  */
-API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0))
+API_DEPRECATED_WITH_REPLACEMENT("sec_protocol_metadata_copy_negotiated_protocol", macos(10.14, 15.5), ios(12.0, 18.5), watchos(5.0, 11.5), tvos(12.0, 18.5))
 const char * _Nullable
 sec_protocol_metadata_get_negotiated_protocol(sec_protocol_metadata_t metadata);
 
 /*!
+ * @function sec_protocol_metadata_copy_negotiated_protocol
+ *
+ * @abstract
+ *      Copy the application protocol negotiated, e.g., via the TLS ALPN extension.
+ *      The caller is expected to `free` the output string when no longer needed.
+ *
+ * @param metadata
+ *      A `sec_protocol_metadata_t` instance.
+ *
+ * @return A NULL-terminated string carrying the negotiated protocol.
+ */
+API_AVAILABLE(macos(15.5), ios(18.5), watchos(11.5), tvos(18.5))
+const char * __nullable
+sec_protocol_metadata_copy_negotiated_protocol(sec_protocol_metadata_t metadata);
+
+/*!
  * @function sec_protocol_metadata_copy_peer_public_key
  *
  * @abstract
@@ -282,9 +298,28 @@
  * @return Returns A NULL-terminated string carrying the server name, or NULL
  *      if none was provided.
  */
-API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0))
+API_DEPRECATED_WITH_REPLACEMENT("sec_protocol_metadata_copy_server_name", macos(10.14, 15.5), ios(12.0, 18.5), watchos(5.0, 11.5), tvos(12.0, 18.5))
 const char * _Nullable
 sec_protocol_metadata_get_server_name(sec_protocol_metadata_t metadata);
+
+/*!
+ * @function sec_protocol_metadata_copy_server_name
+ *
+ * @abstract
+ *      Obtain a copy of the server name offered by a client or server during
+ *      connection establishmet. This is the value commonly carried
+ *      in the TLS SNI extesion. The caller is expected to `free` the output
+ *      string when it is no longer needed.
+ *
+ * @param metadata
+ *      A `sec_protocol_metadata_t` instance.
+ *
+ * @return Returns A NULL-terminated string carrying the server name, or NULL
+ *      if none was provided.
+ */
+API_AVAILABLE(macos(15.5), ios(18.5), watchos(11.5), tvos(18.5))
+const char * __nullable
+sec_protocol_metadata_copy_server_name(sec_protocol_metadata_t metadata);
 
 /*!
  * @function sec_protocol_metadata_peers_are_equal
Clone this wiki locally