Ejemplo n.º 1
0
CBVersionChecksumBytes * CBNewVersionChecksumBytesFromBytes(uint8_t * bytes,uint32_t size,bool cacheString,void (*logError)(char *,...)) {
    CBVersionChecksumBytes * self = malloc(sizeof(*self));
    if (NOT self) {
        logError("Cannot allocate %i bytes of memory in CBNewVersionChecksumBytesFromBytes\n",sizeof(*self));
        return NULL;
    }
    CBGetObject(self)->free = CBFreeVersionChecksumBytes;
    if(CBInitVersionChecksumBytesFromBytes(self,bytes,size,cacheString,logError))
        return self;
    free(self);
    return NULL;
}
Ejemplo n.º 2
0
bool CBInitAddressFromRIPEMD160Hash(CBAddress * self,uint8_t networkCode,uint8_t * hash,bool cacheString,void (*logError)(char *,...)){
	// Build address and then complete intitialisation with CBVersionChecksumBytes
	uint8_t * data = malloc(25); // 1 Network byte, 20 hash bytes, 4 checksum bytes.
	if (NOT data) {
		logError("Cannot allocate 25 bytes of memory in CBInitAddressFromRIPEMD160Hash\n");
		return false;
	}
	// Set network byte
	data[0] = networkCode;
	// Move hash
	memmove(data+1, hash, 20);
	// Make checksum and move it into address
	uint8_t checksum[32];
	uint8_t checksum2[32];
	CBSha256(data,21,checksum);
	CBSha256(checksum,32,checksum2);
	memmove(data+21, checksum2, 4);
	// Initialise CBVersionChecksumBytes
	if (NOT CBInitVersionChecksumBytesFromBytes(CBGetVersionChecksumBytes(self), data, 25,cacheString, logError))
		return false;
	return true;
}
Ejemplo n.º 3
0
CBVersionChecksumBytes * CBNewVersionChecksumBytesFromBytes(uint8_t * bytes,uint32_t size,bool cacheString,CBEvents * events){
	CBVersionChecksumBytes * self = malloc(sizeof(*self));
	CBGetObject(self)->free = CBFreeVersionChecksumBytes;
	CBInitVersionChecksumBytesFromBytes(self,bytes,size,cacheString,events);
	return self;
}