MCPcopy Create free account
hub / github.com/ElementsProject/lightning / bech32_convert_bits

Function bech32_convert_bits

common/bech32.c:157–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

155}
156
157int bech32_convert_bits(uint8_t* out, size_t* outlen, int outbits, const uint8_t* in, size_t inlen, int inbits, int pad) {
158 uint32_t val = 0;
159 int bits = 0;
160 uint32_t maxv = (((uint32_t)1) << outbits) - 1;
161 while (inlen--) {
162 val = (val << inbits) | *(in++);
163 bits += inbits;
164 while (bits >= outbits) {
165 bits -= outbits;
166 out[(*outlen)++] = (val >> bits) & maxv;
167 }
168 }
169 if (pad) {
170 if (bits) {
171 out[(*outlen)++] = (val << (outbits - bits)) & maxv;
172 }
173 } else if (((val << (outbits - bits)) & maxv) || bits >= inbits) {
174 return 0;
175 }
176 return 1;
177}
178
179int segwit_addr_encode(char *output, const char *hrp, int witver, const uint8_t *witprog, size_t witprog_len) {
180 uint8_t data[65];

Callers 7

to_zbase32Function · 0.85
from_zbase32Function · 0.85
runFunction · 0.85
pull_bitsFunction · 0.85
segwit_addr_encodeFunction · 0.85
segwit_addr_decodeFunction · 0.85
mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected