package macOS
import (
"errors"
"strconv"
"unsafe"
)
type SecTrustSettingsResult int32
const (
SecTrustSettingsResultInvalid SecTrustSettingsResult = iota
SecTrustSettingsResultTrustRoot
SecTrustSettingsResultTrustAsRoot
SecTrustSettingsResultDeny
SecTrustSettingsResultUnspecified
)
type SecTrustSettingsDomain int32
const (
SecTrustSettingsDomainUser SecTrustSettingsDomain = iota
SecTrustSettingsDomainAdmin
SecTrustSettingsDomainSystem
)
type OSStatus struct {
call string
status int32
}
func (s OSStatus ) Error () string {
return s .call + " error: " + strconv .Itoa (int (s .status ))
}
var SecTrustSettingsResultKey = StringToCFString ("kSecTrustSettingsResult" )
var SecTrustSettingsPolicy = StringToCFString ("kSecTrustSettingsPolicy" )
var SecTrustSettingsPolicyString = StringToCFString ("kSecTrustSettingsPolicyString" )
var SecPolicyOid = StringToCFString ("SecPolicyOid" )
var SecPolicyAppleSSL = StringToCFString ("1.2.840.113635.100.1.3" )
var ErrNoTrustSettings = errors .New ("no trust settings found" )
const errSecNoTrustSettings = -25263
func SecTrustSettingsCopyCertificates (domain SecTrustSettingsDomain ) (certArray CFRef , err error ) {
ret := syscall (funcPC (x509_SecTrustSettingsCopyCertificates_trampoline ), uintptr (domain ),
uintptr (unsafe .Pointer (&certArray )), 0 , 0 , 0 , 0 )
if int32 (ret ) == errSecNoTrustSettings {
return 0 , ErrNoTrustSettings
} else if ret != 0 {
return 0 , OSStatus {"SecTrustSettingsCopyCertificates" , int32 (ret )}
}
return certArray , nil
}
func x509_SecTrustSettingsCopyCertificates_trampoline ()
const kSecFormatX509Cert int32 = 9
func SecItemExport (cert CFRef ) (data CFRef , err error ) {
ret := syscall (funcPC (x509_SecItemExport_trampoline ), uintptr (cert ), uintptr (kSecFormatX509Cert ),
0 , 0 , uintptr (unsafe .Pointer (&data )), 0 )
if ret != 0 {
return 0 , OSStatus {"SecItemExport" , int32 (ret )}
}
return data , nil
}
func x509_SecItemExport_trampoline ()
const errSecItemNotFound = -25300
func SecTrustSettingsCopyTrustSettings (cert CFRef , domain SecTrustSettingsDomain ) (trustSettings CFRef , err error ) {
ret := syscall (funcPC (x509_SecTrustSettingsCopyTrustSettings_trampoline ), uintptr (cert ), uintptr (domain ),
uintptr (unsafe .Pointer (&trustSettings )), 0 , 0 , 0 )
if int32 (ret ) == errSecItemNotFound {
return 0 , ErrNoTrustSettings
} else if ret != 0 {
return 0 , OSStatus {"SecTrustSettingsCopyTrustSettings" , int32 (ret )}
}
return trustSettings , nil
}
func x509_SecTrustSettingsCopyTrustSettings_trampoline ()
func SecPolicyCopyProperties (policy CFRef ) CFRef {
ret := syscall (funcPC (x509_SecPolicyCopyProperties_trampoline ), uintptr (policy ), 0 , 0 , 0 , 0 , 0 )
return CFRef (ret )
}
func x509_SecPolicyCopyProperties_trampoline ()
The pages are generated with Golds v0.3.6 . (GOOS=darwin GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .