MCPcopy Create free account
hub / github.com/JeanLucPons/VanitySearch / convert_bits

Function convert_bits

Bech32.cpp:179–199  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179static int convert_bits(uint8_t* out, size_t* outlen, int outbits, const uint8_t* in, size_t inlen, int inbits, int pad) {
180 uint32_t val = 0;
181 int bits = 0;
182 uint32_t maxv = (((uint32_t)1) << outbits) - 1;
183 while (inlen--) {
184 val = (val << inbits) | *(in++);
185 bits += inbits;
186 while (bits >= outbits) {
187 bits -= outbits;
188 out[(*outlen)++] = (val >> bits) & maxv;
189 }
190 }
191 if (pad) {
192 if (bits) {
193 out[(*outlen)++] = (val << (outbits - bits)) & maxv;
194 }
195 } else if (((val << (outbits - bits)) & maxv) || bits >= inbits) {
196 return 0;
197 }
198 return 1;
199}
200
201int segwit_addr_encode(char *output, const char *hrp, int witver, const uint8_t *witprog, size_t witprog_len) {
202 uint8_t data[65];

Callers 2

segwit_addr_encodeFunction · 0.85
segwit_addr_decodeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected