47 lines
1.6 KiB
C
47 lines
1.6 KiB
C
|
//
|
||
|
// base58.h
|
||
|
// libp2p_xcode
|
||
|
//
|
||
|
// Created by John Jones on 11/7/16.
|
||
|
// Copyright © 2016 JMJAtlanta. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#ifndef base58_h
|
||
|
#define base58_h
|
||
|
#include "varint.h"
|
||
|
/**
|
||
|
* convert a base58 encoded string into a binary array
|
||
|
* @param base58 the base58 encoded string
|
||
|
* @param base58_size the size of the encoded string
|
||
|
* @param binary_data the results buffer
|
||
|
* @param binary_data_size the size of the results buffer
|
||
|
* @returns true(1) on success
|
||
|
*/
|
||
|
int libp2p_crypto_encoding_base58_decode(const unsigned char* base58, size_t base58_size, unsigned char** binary_data, size_t *binary_data_size);
|
||
|
|
||
|
/**
|
||
|
* encode an array of bytes into a base58 string
|
||
|
* @param binary_data the data to be encoded
|
||
|
* @param binary_data_size the size of the data to be encoded
|
||
|
* @param base58 the results buffer
|
||
|
* @param base58_size the size of the results buffer
|
||
|
* @returns true(1) on success
|
||
|
*/
|
||
|
int libp2p_crypto_encoding_base58_encode(const unsigned char* binary_data, size_t binary_data_size, unsigned char** base58, size_t* base58_size);
|
||
|
|
||
|
/***
|
||
|
* calculate the size of the binary results based on an incoming base58 string with no initial padding
|
||
|
* @param base58_string the string
|
||
|
* @returns the size in bytes had the string been decoded
|
||
|
*/
|
||
|
size_t libp2p_crypto_encoding_base58_decode_size(const unsigned char* base58_string);
|
||
|
|
||
|
/**
|
||
|
* calculate the max length in bytes of an encoding of n source bits
|
||
|
* @param base58_string the string
|
||
|
* @returns the maximum size in bytes had the string been decoded
|
||
|
*/
|
||
|
size_t libp2p_crypto_encoding_base58_decode_max_size(const unsigned char* base58_string);
|
||
|
|
||
|
|
||
|
#endif /* base58_h */
|