MCPcopy Index your code
hub / github.com/sqlmapproject/sqlmap / _set_key

Function _set_key

thirdparty/fcrypt/fcrypt.py:455–509  ·  view source on GitHub ↗

Generate DES key schedule from ASCII password.

(password)

Source from the content-addressed store, hash-verified

453
454
455def _set_key(password):
456 """Generate DES key schedule from ASCII password."""
457
458 c,d = struct.unpack('<ii', password.encode("utf8") if not isinstance(password, bytes) else password)
459 c = (c & 0x7f7f7f7f) << 1
460 d = (d & 0x7f7f7f7f) << 1
461
462 d,c = _PERM_OP(d,c,4,0x0f0f0f0f)
463 c = _HPERM_OP(c)
464 d = _HPERM_OP(d)
465 d,c = _PERM_OP(d,c,1,0x55555555)
466 c,d = _PERM_OP(c,d,8,0x00ff00ff)
467 d,c = _PERM_OP(d,c,1,0x55555555)
468
469 # Any sign-extended bits are masked off.
470 d = (((d & 0x000000ff) << 16) | (d & 0x0000ff00) |
471 ((d & 0x00ff0000) >> 16) | ((c >> 4) & 0x0f000000))
472 c = c & 0x0fffffff
473
474 # Copy globals into local variables for loop.
475 shifts2 = _shifts2
476 skbc0, skbc1, skbc2, skbc3, skbd0, skbd1, skbd2, skbd3 = _skb
477
478 k = [0] * (_ITERATIONS * 2)
479
480 for i in xrange(_ITERATIONS):
481 # Only operates on top 28 bits.
482 if shifts2[i]:
483 c = (c >> 2) | (c << 26)
484 d = (d >> 2) | (d << 26)
485 else:
486 c = (c >> 1) | (c << 27)
487 d = (d >> 1) | (d << 27)
488 c = c & 0x0fffffff
489 d = d & 0x0fffffff
490
491 s = ( skbc0[ c & 0x3f ] |
492 skbc1[((c>> 6) & 0x03) | ((c>> 7) & 0x3c)] |
493 skbc2[((c>>13) & 0x0f) | ((c>>14) & 0x30)] |
494 skbc3[((c>>20) & 0x01) |
495 ((c>>21) & 0x06) | ((c>>22) & 0x38)] )
496
497 t = ( skbd0[ d & 0x3f ] |
498 skbd1[((d>> 7) & 0x03) | ((d>> 8) & 0x3c)] |
499 skbd2[((d>>15) & 0x3f) ] |
500 skbd3[((d>>21) & 0x0f) | ((d>>22) & 0x30)] )
501
502 k[2*i] = ((t << 16) | (s & 0x0000ffff)) & 0xffffffff
503 s = (s >> 16) | (t & 0xffff0000)
504
505 # Top bit of s may be 1.
506 s = (s << 4) | ((s >> 28) & 0x0f)
507 k[2*i + 1] = s & 0xffffffff
508
509 return k
510
511
512def _body(ks, E0, E1):

Callers 1

cryptFunction · 0.85

Calls 3

_PERM_OPFunction · 0.85
_HPERM_OPFunction · 0.85
xrangeClass · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…