|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
50
 | 
 852  | 
 0  | 
 	if (!sv_isobject(self) || !sv_derived_from(self, "Digest::SHA"))  | 
 
| 
 | 
 0  | 
 852  | 
 	if (!sv_isobject(self) || !sv_derived_from(self, "Digest::SHA"))  | 
 
| 
52
 | 
 852  | 
 0  | 
 	return INT2PTR(SHA *, SvIV(SvRV(self)));  | 
 
| 
82
 | 
 1  | 
 17  | 
 	if (!shainit(state, alg)) {  | 
 
| 
99
 | 
 0  | 
 11  | 
 	if ((state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
146
 | 
 0  | 
 38  | 
 	if (!shainit(&sha, ix2alg[ix]))  | 
 
| 
148
 | 
 38  | 
 37  | 
 	for (i = 0; i < items; i++) {  | 
 
| 
149
 | 
 35  | 
 3  | 
 		data = (UCHR *) (SvPVbyte(ST(i), len));  | 
 
| 
150
 | 
 305  | 
 37  | 
 		while (len > MAX_WRITE_SIZE) {  | 
 
| 
159
 | 
 1  | 
 36  | 
 	if (ix % 3 == 0) {  | 
 
| 
163
 | 
 26  | 
 10  | 
 	else if (ix % 3 == 1)  | 
 
| 
203
 | 
 43  | 
 0  | 
 	if (items > 0) {  | 
 
| 
204
 | 
 43  | 
 0  | 
 		key = (UCHR *) (SvPVbyte(ST(items-1), len));  | 
 
| 
206
 | 
 0  | 
 43  | 
 	if (hmacinit(&hmac, ix2alg[ix], key, (UINT) len) == NULL)  | 
 
| 
208
 | 
 45  | 
 43  | 
 	for (i = 0; i < items - 1; i++) {  | 
 
| 
209
 | 
 45  | 
 0  | 
 		data = (UCHR *) (SvPVbyte(ST(i), len));  | 
 
| 
210
 | 
 0  | 
 45  | 
 		while (len > MAX_WRITE_SIZE) {  | 
 
| 
219
 | 
 23  | 
 20  | 
 	if (ix % 3 == 0) {  | 
 
| 
223
 | 
 20  | 
 0  | 
 	else if (ix % 3 == 1)  | 
 
| 
240
 | 
 0  | 
 12  | 
 	if ((state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
242
 | 
 12  | 
 0  | 
 	RETVAL = ix ? state->alg : (int) (state->digestlen << 3);  | 
 
| 
255
 | 
 0  | 
 15  | 
 	if ((state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
257
 | 
 16  | 
 15  | 
 	for (i = 1; i < items; i++) {  | 
 
| 
258
 | 
 16  | 
 0  | 
 		data = (UCHR *) (SvPVbyte(ST(i), len));  | 
 
| 
259
 | 
 0  | 
 16  | 
 		while (len > MAX_WRITE_SIZE) {  | 
 
| 
280
 | 
 0  | 
 61  | 
 	if ((state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
284
 | 
 1  | 
 60  | 
 	if (ix == 0) {  | 
 
| 
288
 | 
 59  | 
 1  | 
 	else if (ix == 1)  | 
 
| 
305
 | 
 0  | 
 4  | 
 	if ((state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
307
 | 
 2  | 
 2  | 
 	Copy(digcpy(state), ptr, state->alg <= SHA256 ? 32 : 64, UCHR);  | 
 
| 
308
 | 
 2  | 
 2  | 
 	ptr += state->alg <= SHA256 ? 32 : 64;  | 
 
| 
309
 | 
 2  | 
 2  | 
 	Copy(state->block, ptr, state->alg <= SHA256 ? 64 : 128, UCHR);  | 
 
| 
310
 | 
 2  | 
 2  | 
 	ptr += state->alg <= SHA256 ? 64 : 128;  | 
 
| 
330
 | 
 0  | 
 11  | 
 	if ((state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
332
 | 
 11  | 
 0  | 
 	data = (UCHR *) SvPV(packed_state, len);  | 
 
| 
333
 | 
 7  | 
 4  | 
 	if (len != (state->alg <= SHA256 ? 116U : 212U))  | 
 
| 
 | 
 0  | 
 11  | 
 	if (len != (state->alg <= SHA256 ? 116U : 212U))  | 
 
| 
339
 | 
 7  | 
 4  | 
 	if (bc >= (state->alg <= SHA256 ? 512U : 1024U))  | 
 
| 
 | 
 0  | 
 11  | 
 	if (bc >= (state->alg <= SHA256 ? 512U : 1024U))  | 
 
| 
357
 | 
 1  | 
 0  | 
 	if (!f || (state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
 | 
 0  | 
 1  | 
 	if (!f || (state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
359
 | 
 1  | 
 1  | 
 	while ((n = (int) PerlIO_read(f, in, sizeof(in))) > 0)  | 
 
| 
375
 | 
 1  | 
 0  | 
 	if (!f || (state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
 | 
 0  | 
 1  | 
 	if (!f || (state = getSHA(aTHX_ self)) == NULL)  | 
 
| 
377
 | 
 1  | 
 1  | 
 	while ((n = (int) PerlIO_read(f, in+1, IO_BUFFER_SIZE)) > 0) {  | 
 
| 
378
 | 
 27  | 
 1  | 
 		for (dst = in, src = in + 1; n; n--) {  | 
 
| 
380
 | 
 23  | 
 4  | 
 			if (!cr) {  | 
 
| 
381
 | 
 3  | 
 20  | 
 				if (c == '\015')  | 
 
| 
387
 | 
 1  | 
 3  | 
 				if (c == '\015')  | 
 
| 
389
 | 
 2  | 
 1  | 
 				else if (c == '\012') {  | 
 
| 
402
 | 
 0  | 
 1  | 
 	if (cr) {  |