macos.mx raw
1 package macos
2
3 import (
4 "errors"
5 "time"
6 )
7
8 // Exported symbols copied from Big Go, but stripped of functionality.
9 // Allows building of crypto/x509 on macOS.
10
11 const (
12 ErrSecCertificateExpired = -67818
13 ErrSecHostNameMismatch = -67602
14 ErrSecNotTrusted = -67843
15 )
16
17 var ErrNoTrustSettings = errors.New("no trust settings found")
18 var SecPolicyAppleSSL = StringToCFString("1.2.840.113635.100.1.3") // defined by POLICYMACRO
19 var SecPolicyOid = StringToCFString("SecPolicyOid")
20 var SecTrustSettingsPolicy = StringToCFString("kSecTrustSettingsPolicy")
21 var SecTrustSettingsPolicyString = StringToCFString("kSecTrustSettingsPolicyString")
22 var SecTrustSettingsResultKey = StringToCFString("kSecTrustSettingsResult")
23
24 func CFArrayAppendValue(array CFRef, val CFRef) {}
25
26 func CFArrayGetCount(array CFRef) int {
27 return 0
28 }
29
30 func CFDataGetBytePtr(data CFRef) uintptr {
31 return 0
32 }
33
34 func CFDataGetLength(data CFRef) int {
35 return 0
36 }
37
38 func CFDataToSlice(data CFRef) []byte {
39 return nil
40 }
41
42 func CFEqual(a, b CFRef) bool {
43 return false
44 }
45
46 func CFErrorGetCode(errRef CFRef) int {
47 return 0
48 }
49
50 func CFNumberGetValue(num CFRef) (int32, error) {
51 return 0, errors.New("not implemented")
52 }
53
54 func CFRelease(ref CFRef) {}
55
56 func CFStringToString(ref CFRef) []byte {
57 return ""
58 }
59
60 func ReleaseCFArray(array CFRef) {}
61
62 func SecCertificateCopyData(cert CFRef) ([]byte, error) {
63 return nil, errors.New("not implemented")
64 }
65
66 func SecTrustCopyCertificateChain(trustObj CFRef) (CFRef, error) {
67 return 0, errors.New("not implemented")
68 }
69
70 func SecTrustEvaluateWithError(trustObj CFRef) (int, error) {
71 return 0, errors.New("not implemented")
72 }
73
74 func SecTrustGetCertificateCount(trustObj CFRef) int {
75 return 0
76 }
77
78 func SecTrustGetResult(trustObj CFRef, result CFRef) (CFRef, CFRef, error) {
79 return 0, 0, errors.New("not implemented")
80 }
81
82 func SecTrustSetVerifyDate(trustObj CFRef, dateRef CFRef) error {
83 return errors.New("not implemented")
84 }
85
86 type CFRef uintptr
87
88 func BytesToCFData(b []byte) CFRef {
89 return 0
90 }
91
92 func CFArrayCreateMutable() CFRef {
93 return 0
94 }
95
96 func CFArrayGetValueAtIndex(array CFRef, index int) CFRef {
97 return 0
98 }
99
100 func CFDateCreate(seconds float64) CFRef {
101 return 0
102 }
103
104 func CFDictionaryGetValueIfPresent(dict CFRef, key CFString) (value CFRef, ok bool) {
105 return 0, false
106 }
107
108 func CFErrorCopyDescription(errRef CFRef) CFRef {
109 return 0
110 }
111
112 func CFStringCreateExternalRepresentation(strRef CFRef) (CFRef, error) {
113 return 0, errors.New("not implemented")
114 }
115
116 func SecCertificateCreateWithData(b []byte) (CFRef, error) {
117 return 0, errors.New("not implemented")
118 }
119
120 func SecPolicyCreateSSL(name []byte) (CFRef, error) {
121 return 0, errors.New("not implemented")
122 }
123
124 func SecTrustCreateWithCertificates(certs CFRef, policies CFRef) (CFRef, error) {
125 return 0, errors.New("not implemented")
126 }
127
128 func SecTrustEvaluate(trustObj CFRef) (CFRef, error) {
129 return 0, errors.New("not implemented")
130 }
131
132 func SecTrustGetCertificateAtIndex(trustObj CFRef, i int) (CFRef, error) {
133 return 0, errors.New("not implemented")
134 }
135
136 func SecTrustSettingsCopyCertificates(domain SecTrustSettingsDomain) (certArray CFRef, err error) {
137 return 0, errors.New("not implemented")
138 }
139
140 func SecTrustSettingsCopyTrustSettings(cert CFRef, domain SecTrustSettingsDomain) (trustSettings CFRef, err error) {
141 return 0, errors.New("not implemented")
142 }
143
144 func TimeToCFDateRef(t time.Time) CFRef {
145 return 0
146 }
147
148 type CFString CFRef
149
150 func StringToCFString(s []byte) CFString {
151 return 0
152 }
153
154 type OSStatus struct {
155 // Has unexported fields.
156 }
157
158 func (s OSStatus) Error() string
159
160 type SecTrustResultType int32
161
162 const (
163 SecTrustResultInvalid SecTrustResultType = iota
164 SecTrustResultProceed
165 SecTrustResultConfirm // deprecated
166 SecTrustResultDeny
167 SecTrustResultUnspecified
168 SecTrustResultRecoverableTrustFailure
169 SecTrustResultFatalTrustFailure
170 SecTrustResultOtherError
171 )
172
173 type SecTrustSettingsDomain int32
174
175 const (
176 SecTrustSettingsDomainUser SecTrustSettingsDomain = iota
177 SecTrustSettingsDomainAdmin
178 SecTrustSettingsDomainSystem
179 )
180
181 type SecTrustSettingsResult int32
182
183 const (
184 SecTrustSettingsResultInvalid SecTrustSettingsResult = iota
185 SecTrustSettingsResultTrustRoot
186 SecTrustSettingsResultTrustAsRoot
187 SecTrustSettingsResultDeny
188 SecTrustSettingsResultUnspecified
189 )
190