| 395 | } |
| 396 | |
| 397 | func processStandardInput(output chan Result) { |
| 398 | total, nChunks := int64(0), int64(0) |
| 399 | r := bufio.NewReader(os.Stdin) |
| 400 | buf := make([]byte, 0, 4*1024) |
| 401 | |
| 402 | md4_d := md4.New() |
| 403 | md5_d := md5.New() |
| 404 | sha1_d := sha1.New() |
| 405 | sha256_d := sha256.New() |
| 406 | sha512_d := sha512.New() |
| 407 | blake2b_256_d := blake2b.New256() |
| 408 | blake2b_512_d := blake2b.New512() |
| 409 | blake3_d := blake3.New() |
| 410 | sha3_224_d := sha3.New224() |
| 411 | sha3_256_d := sha3.New256() |
| 412 | sha3_384_d := sha3.New384() |
| 413 | sha3_512_d := sha3.New512() |
| 414 | |
| 415 | md4c := make(chan []byte, 10) |
| 416 | md5c := make(chan []byte, 10) |
| 417 | sha1c := make(chan []byte, 10) |
| 418 | sha256c := make(chan []byte, 10) |
| 419 | sha512c := make(chan []byte, 10) |
| 420 | blake2b_256_c := make(chan []byte, 10) |
| 421 | blake2b_512_c := make(chan []byte, 10) |
| 422 | blake3c := make(chan []byte, 10) |
| 423 | sha3_224_c := make(chan []byte, 10) |
| 424 | sha3_256_c := make(chan []byte, 10) |
| 425 | sha3_384_c := make(chan []byte, 10) |
| 426 | sha3_512_c := make(chan []byte, 10) |
| 427 | |
| 428 | var wg sync.WaitGroup |
| 429 | |
| 430 | if hasHash(HashNames.MD4) { |
| 431 | wg.Add(1) |
| 432 | go func() { |
| 433 | for b := range md4c { |
| 434 | md4_d.Write(b) |
| 435 | } |
| 436 | wg.Done() |
| 437 | }() |
| 438 | } |
| 439 | |
| 440 | if hasHash(HashNames.MD5) { |
| 441 | wg.Add(1) |
| 442 | go func() { |
| 443 | for b := range md5c { |
| 444 | md5_d.Write(b) |
| 445 | } |
| 446 | wg.Done() |
| 447 | }() |
| 448 | } |
| 449 | |
| 450 | if hasHash(HashNames.SHA1) { |
| 451 | wg.Add(1) |
| 452 | go func() { |
| 453 | for b := range sha1c { |
| 454 | sha1_d.Write(b) |