gi-glib-2.0.30: GLib bindings

Copyright | Will Thompson and Iñaki García Etxebarria
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria
Safe Haskell | Safe-Inferred
Language | Haskell2010

GI.GLib.Structs.Checksum

Contents

- Exported types
- Methods
  - copy
  - free
  - getString
  - new
  - reset
  - typeGetLength
  - update

Description

GLib provides a generic API for computing checksums (or ‘digests’) for a sequence of arbitrary bytes, using various hashing algorithms like MD5, SHA-1 and SHA-256. Checksums are commonly used in various environments and specifications.

To create a new `GChecksum`, use `checksumNew`. To free a `GChecksum`, use `checksumFree`.

GLib supports incremental checksums using the `GChecksum` data structure, by calling `checksumUpdate` as long as there’s data available and then using `checksumGetString` or `Checksum`.`get_digest`() to compute the checksum and return it either as a string in hexadecimal form, or as a raw sequence of bytes. To compute the checksum for binary blobs and nul-terminated strings in one go, use the convenience functions `computeChecksumForData` and `computeChecksumForString`, respectively.

Since: 2.16

Synopsis

- newtype Checksum = Checksum (ManagedPtr Checksum)
- checksumCopy :: (HasCallStack, MonadIO m) => Checksum -> m Checksum
- checksumFree :: (HasCallStack, MonadIO m) => Checksum -> m ()
- checksumGetString :: (HasCallStack, MonadIO m) => Checksum -> m Text
- checksumNew :: (HasCallStack, MonadIO m) => ChecksumType -> m (Maybe Checksum)
- checksumReset :: (HasCallStack, MonadIO m) => Checksum -> m ()
- checksumTypeGetLength :: (HasCallStack, MonadIO m) => ChecksumType -> m Int64
- checksumUpdate :: (HasCallStack, MonadIO m) => Checksum -> ByteString -> m ()

# Exported types

newtype Checksum Source #

Memory-managed wrapper type.

Constructors

Checksum (ManagedPtr Checksum) |

#### Instances

Instances details

Eq Checksum Source # |
Instance details Defined in GI.GLib.Structs.Checksum Methods (==) :: Checksum -> Checksum -> Bool Source # (/=) :: Checksum -> Checksum -> Bool Source #
GBoxed Checksum Source # |
Instance details Defined in GI.GLib.Structs.Checksum
ManagedPtrNewtype Checksum Source # |
Instance details Defined in GI.GLib.Structs.Checksum Methods toManagedPtr :: Checksum -> ManagedPtr Checksum Source #
TypedObject Checksum Source # |
Instance details Defined in GI.GLib.Structs.Checksum Methods glibType :: IO GType Source #
HasParentTypes Checksum Source # |
Instance details Defined in GI.GLib.Structs.Checksum
IsGValue (Maybe Checksum) Source # | Convert `Checksum` to and from `GValue`. See `toGValue` and `fromGValue`.
Instance details Defined in GI.GLib.Structs.Checksum Methods gvalueGType_ :: IO GType Source # gvalueSet_ :: Ptr GValue -> Maybe Checksum -> IO () Source # gvalueGet_ :: Ptr GValue -> IO (Maybe Checksum) Source #
type ParentTypes Checksum Source # |
Instance details Defined in GI.GLib.Structs.Checksum type ParentTypes Checksum = '[] :: [Type]

# Methods

### Click to display all available methods, including inherited ones

Expand

#### Methods

copy, free, reset, update.

#### Getters

getString.

#### Setters

None.

## copy

checksumCopy Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Checksum | `checksum`: the `Checksum` to copy
-> m Checksum | Returns: the copy of the passed `Checksum`. Use `checksumFree` when finished using it.

Copies a `Checksum`. If `checksum` has been closed, by calling `checksumGetString` or `g_checksum_get_digest()`, the copied checksum will be closed as well.

Since: 2.16

## free

checksumFree Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Checksum | `checksum`: a `Checksum`
-> m () |

Frees the memory allocated for `checksum`.

Since: 2.16

## getString

checksumGetString Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Checksum | `checksum`: a `Checksum`
-> m Text | Returns: the hexadecimal representation of the checksum. The returned string is owned by the checksum and should not be modified or freed.

Gets the digest as a hexadecimal string.

Once this function has been called the `Checksum` can no longer be updated with `checksumUpdate`.

The hexadecimal characters will be lower case.

Since: 2.16

## new

checksumNew Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> ChecksumType | `checksumType`: the desired type of checksum
-> m (Maybe Checksum) | Returns: the newly created `Checksum`, or `Nothing`. Use `checksumFree` to free the memory allocated by it.

Creates a new `Checksum`, using the checksum algorithm `checksumType`. If the `checksumType` is not known, `Nothing` is returned. A `Checksum` can be used to compute the checksum, or digest, of an arbitrary binary blob, using different hashing algorithms.

A `Checksum` works by feeding a binary blob through `checksumUpdate` until there is data to be checked; the digest can then be extracted using `checksumGetString`, which will return the checksum as a hexadecimal string; or `g_checksum_get_digest()`, which will return a vector of raw bytes. Once either `checksumGetString` or `g_checksum_get_digest()` have been called on a `Checksum`, the checksum will be closed and it won't be possible to call `checksumUpdate` on it anymore.

Since: 2.16

## reset

checksumReset Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Checksum | `checksum`: the `Checksum` to reset
-> m () |

Resets the state of the `checksum` back to its initial state.

Since: 2.18

## typeGetLength

checksumTypeGetLength Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> ChecksumType | `checksumType`: a `ChecksumType`
-> m Int64 | Returns: the checksum length, or -1 if `checksumType` is not supported.

Gets the length in bytes of digests of type `checksumType`

Since: 2.16

## update

checksumUpdate Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Checksum | `checksum`: a `Checksum`
-> ByteString | `data`: buffer used to compute the checksum
-> m () |

Feeds `data` into an existing `Checksum`. The checksum must still be open, that is `checksumGetString` or `g_checksum_get_digest()` must not have been called on `checksum`.

Since: 2.16