0 | module Node.TLS.CreateSecureContext
  1 |
  2 | import Node
  3 | import Data.Buffer
  4 | import Node.Internal.Support
  5 |
  6 | public export
  7 | record Options where
  8 |   constructor MkOptions
  9 |   ca: List String
 10 |   cert: List String
 11 |   sigalgs: List String
 12 |   ciphers: Maybe String
 13 |   clientCertEngine: Maybe String
 14 |   crl: List String
 15 |   dhparam: Maybe String
 16 |   ecdhCurve: Maybe String
 17 |   honorCipherOrder: Maybe Bool
 18 |   key: List String
 19 |   privateKeyEngine: Maybe String
 20 |   privateKeyIdentifier: Maybe String
 21 |   maxVersion: Maybe String
 22 |   minVersion: Maybe String
 23 |   passphrase: Maybe String
 24 |   pfx: List String
 25 |   secureOptions: Maybe Int
 26 |   secureProtocol: Maybe String
 27 |   sessionIdContext: Maybe String
 28 |   ticketKeys: Maybe Buffer
 29 |   sessionTimeout: Int
 30 |
 31 | export
 32 | defaultOptions : Options
 33 | defaultOptions = MkOptions
 34 |   { ca = []
 35 |   , cert = []
 36 |   , sigalgs = []
 37 |   , ciphers = Nothing
 38 |   , clientCertEngine = Nothing
 39 |   , crl = []
 40 |   , dhparam = Nothing
 41 |   , ecdhCurve = Nothing
 42 |   , honorCipherOrder = Nothing
 43 |   , key = []
 44 |   , privateKeyEngine = Nothing
 45 |   , privateKeyIdentifier = Nothing
 46 |   , maxVersion = Nothing
 47 |   , minVersion = Nothing
 48 |   , passphrase = Nothing
 49 |   , pfx = []
 50 |   , secureOptions = Nothing
 51 |   , secureProtocol = Nothing
 52 |   , sessionIdContext = Nothing
 53 |   , ticketKeys = Nothing
 54 |   , sessionTimeout = 300
 55 |   }
 56 |
 57 | %foreign """
 58 |   node:lambda:
 59 |   ( ca
 60 |   , cert
 61 |   , sigalgs
 62 |   , ciphers
 63 |   , clientCertEngine
 64 |   , crl
 65 |   , dhparam
 66 |   , ecdhCurve
 67 |   , honorCipherOrder
 68 |   , key
 69 |   , privateKeyEngine
 70 |   , privateKeyIdentifier
 71 |   , maxVersion
 72 |   , minVersion
 73 |   , passphrase
 74 |   , pfx
 75 |   , secureOptions
 76 |   , secureProtocol
 77 |   , sessionIdContext
 78 |   , ticketKeys
 79 |   , sessionTimeout
 80 |   ) => _keepDefined({
 81 |     ca: __prim_idris2js_array(ca),
 82 |     cert: __prim_idris2js_array(cert),
 83 |     sigalgs: sigalgs.length > 0 ? __prim_idris2js_array(sigalgs).join(',') : undefined,
 84 |     ciphers: _maybe(ciphers),
 85 |     clientCertEngine: _maybe(clientCertEngine),
 86 |     crl: __prim_idris2js_array(crl),
 87 |     dhparam: _maybe(dhparam),
 88 |     ecdhCurve: _maybe(ecdhCurve),
 89 |     honorCipherOrder: _bool(_maybe(honorCipherOrder)),
 90 |     key: __prim_idris2js_array(key),
 91 |     privateKeyEngine: _maybe(privateKeyEngine),
 92 |     privateKeyIdentifier: _maybe(privateKeyIdentifier),
 93 |     maxVersion: _maybe(maxVersion),
 94 |     minVersion: _maybe(minVersion),
 95 |     passphrase: _maybe(passphrase),
 96 |     pfx: __prim_idris2js_array(pfx),
 97 |     secureOptions: _maybe(secureOptions),
 98 |     secureProtocol: _maybe(secureProtocol),
 99 |     sessionIdContext: _maybe(sessionIdContext),
100 |     ticketKeys: _maybe(ticketKeys),
101 |     sessionTimeout
102 |   })
103 |   """
104 | ffi_convertOptions:
105 |   (ca: List String) ->
106 |   (cert: List String) ->
107 |   (sigalgs: List String) ->
108 |   (ciphers: Maybe String) ->
109 |   (clientCertEngine: Maybe String) ->
110 |   (crl: List String) ->
111 |   (dhparam: Maybe String) ->
112 |   (ecdhCurve: Maybe String) ->
113 |   (honorCipherOrder: Maybe Bool) ->
114 |   (key: List String) ->
115 |   (privateKeyEngine: Maybe String) ->
116 |   (privateKeyIdentifier: Maybe String) ->
117 |   (maxVersion: Maybe String) ->
118 |   (minVersion: Maybe String) ->
119 |   (passphrase: Maybe String) ->
120 |   (pfx: List String) ->
121 |   (secureOptions: Maybe Int) ->
122 |   (secureProtocol: Maybe String) ->
123 |   (sessionIdContext: Maybe String) ->
124 |   (ticketKeys: Maybe Buffer) ->
125 |   (sessionTimeout: Int) ->
126 |   Node Options
127 |
128 | export
129 | convertOptions : Options -> Node Options
130 | convertOptions o = ffi_convertOptions
131 |   o.ca
132 |   o.cert
133 |   o.sigalgs
134 |   o.ciphers
135 |   o.clientCertEngine
136 |   o.crl
137 |   o.dhparam
138 |   o.ecdhCurve
139 |   o.honorCipherOrder
140 |   o.key
141 |   o.privateKeyEngine
142 |   o.privateKeyIdentifier
143 |   o.maxVersion
144 |   o.minVersion
145 |   o.passphrase
146 |   o.pfx
147 |   o.secureOptions
148 |   o.secureProtocol
149 |   o.sessionIdContext
150 |   o.ticketKeys
151 |   o.sessionTimeout
152 |
153 |