<!--
{
  "availability" : [
    "macOS: 10.2.0 - 10.7.0"
  ],
  "documentType" : "symbol",
  "framework" : "Security",
  "identifier" : "/documentation/Security/SecTrustGetCssmResult",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "Security"
    ],
    "preciseIdentifier" : "c:@F@SecTrustGetCssmResult"
  },
  "title" : "SecTrustGetCssmResult"
}
-->

# SecTrustGetCssmResult

Retrieves the CSSM trust result.

```
OSStatus SecTrustGetCssmResult(SecTrustRef trust, CSSM_TP_VERIFY_CONTEXT_RESULT_PTR*result);
```

## Parameters

`trust`

A trust management object that has previously been sent to the [`SecTrustEvaluate(_:_:)`](/documentation/Security/SecTrustEvaluate(_:_:)) function for evaluation.

`result`

On return, points to the CSSM trust result pointer. You should not modify or free this data, as it is owned by the system.

## Return Value

A result code. See [Security Framework Result Codes](/documentation/Security/security-framework-result-codes).

## Discussion

After calling the [`SecTrustEvaluate(_:_:)`](/documentation/Security/SecTrustEvaluate(_:_:)) function, you can call the [`SecTrustGetTrustResult(_:_:)`](/documentation/Security/SecTrustGetTrustResult(_:_:)) function or the `SecTrustGetCssmResult` function to get information about the certificates in the certificate chain and everything that might be wrong with each certificate. Whereas the [`SecTrustGetTrustResult(_:_:)`](/documentation/Security/SecTrustGetTrustResult(_:_:)) function returns the information in a form that you can interpret without extensive knowledge of CSSM, the `SecTrustGetCssmResult` function returns information in a form that can be passed directly to CSSM functions. See *Common Security: CDSA and CSSM, version 2 (with corrigenda)* from The Open Group (<http://www.opengroup.org/security/cdsa.htm> for more information about the `CSSM_TP_VERIFY_CONTEXT_RESULT` structure pointed to by the `result` parameter.

It is safe to call this function concurrently on two or more threads as long as it is not used to get values from a trust management object that is simultaneously being changed by another function. For example, you can call this function on two threads at the same time, but not if you are simultaneously calling the [`SecTrustSetVerifyDate(_:_:)`](/documentation/Security/SecTrustSetVerifyDate(_:_:)) function for the same trust management object on another thread.

## See Also

[`SecTrustGetTrustResult(_:_:)`](/documentation/Security/SecTrustGetTrustResult(_:_:))

Returns the result code from the most recent trust evaluation.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)