diff options
author | Benjamin Barenblat <bbaren@google.com> | 2018-04-28 14:28:03 -0700 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2018-04-28 14:28:03 -0700 |
commit | 46f0b4f51ffa6982e66bdbf3a29426fb15c999d2 (patch) | |
tree | 87914726af8bcb38a0071b3216459514b8e2fc17 /src/Internal/Base.chs | |
parent | 5418461764453d2a6fa0e66b56123ef541631689 (diff) |
Begin refactoring low-level foreign imports into their own hierarchy
It’s clear at this point that this system is going to get large enough
that a two-layer implementation is warranted. `Internal` will contain
low-level bindings to BoringSSL; other modules will export an idiomatic
interface on top of them.
Diffstat (limited to 'src/Internal/Base.chs')
-rw-r--r-- | src/Internal/Base.chs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/Internal/Base.chs b/src/Internal/Base.chs new file mode 100644 index 0000000..552e76b --- /dev/null +++ b/src/Internal/Base.chs @@ -0,0 +1,38 @@ +-- Copyright 2018 Google LLC +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); you may not +-- use this file except in compliance with the License. You may obtain a copy of +-- the License at +-- +-- https://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +-- License for the specific language governing permissions and limitations under +-- the License. + +{-# OPTIONS_GHC -Wno-missing-methods #-} +{-# OPTIONS_GHC -Wno-unused-imports #-} + +module Internal.Base where + +import Foreign (Ptr, nullPtr) + +#include <openssl/base.h> + +-- | The BoringSSL @ENGINE@ type. +data Engine +{#pointer *ENGINE as 'Ptr Engine' -> Engine nocode#} + +noEngine :: Ptr Engine +noEngine = nullPtr + +-- | The BoringSSL @EVP_MD_CTX@ type, representing the state of a pending +-- hashing operation. +data EvpMdCtx +{#pointer *EVP_MD_CTX as 'Ptr EvpMdCtx' -> EvpMdCtx nocode#} + +-- | The BoringSSL @EVP_MD@ type, representing a hash algorithm. +data EvpMd +{#pointer *EVP_MD as 'Ptr EvpMd' -> EvpMd nocode#} |