(args: NewHashArgs, vm: &VirtualMachine)
| 558 | |
| 559 | #[pyfunction(name = "new")] |
| 560 | fn hashlib_new(args: NewHashArgs, vm: &VirtualMachine) -> PyResult<PyObjectRef> { |
| 561 | let data = resolve_data(args.data, args.string, vm)?; |
| 562 | match args.name.as_str().to_lowercase().as_str() { |
| 563 | "md5" => Ok(PyHasher::new("md5", HashWrapper::new::<Md5>(data)).into_pyobject(vm)), |
| 564 | "sha1" => Ok(PyHasher::new("sha1", HashWrapper::new::<Sha1>(data)).into_pyobject(vm)), |
| 565 | "sha224" => { |
| 566 | Ok(PyHasher::new("sha224", HashWrapper::new::<Sha224>(data)).into_pyobject(vm)) |
| 567 | } |
| 568 | "sha256" => { |
| 569 | Ok(PyHasher::new("sha256", HashWrapper::new::<Sha256>(data)).into_pyobject(vm)) |
| 570 | } |
| 571 | "sha384" => { |
| 572 | Ok(PyHasher::new("sha384", HashWrapper::new::<Sha384>(data)).into_pyobject(vm)) |
| 573 | } |
| 574 | "sha512" => { |
| 575 | Ok(PyHasher::new("sha512", HashWrapper::new::<Sha512>(data)).into_pyobject(vm)) |
| 576 | } |
| 577 | "sha3_224" => { |
| 578 | Ok(PyHasher::new("sha3_224", HashWrapper::new::<Sha3_224>(data)).into_pyobject(vm)) |
| 579 | } |
| 580 | "sha3_256" => { |
| 581 | Ok(PyHasher::new("sha3_256", HashWrapper::new::<Sha3_256>(data)).into_pyobject(vm)) |
| 582 | } |
| 583 | "sha3_384" => { |
| 584 | Ok(PyHasher::new("sha3_384", HashWrapper::new::<Sha3_384>(data)).into_pyobject(vm)) |
| 585 | } |
| 586 | "sha3_512" => { |
| 587 | Ok(PyHasher::new("sha3_512", HashWrapper::new::<Sha3_512>(data)).into_pyobject(vm)) |
| 588 | } |
| 589 | "shake_128" => Ok( |
| 590 | PyHasherXof::new("shake_128", HashXofWrapper::new_shake_128(data)) |
| 591 | .into_pyobject(vm), |
| 592 | ), |
| 593 | "shake_256" => Ok( |
| 594 | PyHasherXof::new("shake_256", HashXofWrapper::new_shake_256(data)) |
| 595 | .into_pyobject(vm), |
| 596 | ), |
| 597 | "blake2b" => Ok( |
| 598 | PyHasher::new("blake2b", HashWrapper::new::<Blake2b512>(data)).into_pyobject(vm), |
| 599 | ), |
| 600 | "blake2s" => Ok( |
| 601 | PyHasher::new("blake2s", HashWrapper::new::<Blake2s256>(data)).into_pyobject(vm), |
| 602 | ), |
| 603 | other => Err(vm.new_value_error(format!("Unknown hashing algorithm: {other}"))), |
| 604 | } |
| 605 | } |
| 606 | |
| 607 | #[pyfunction(name = "openssl_md5")] |
| 608 | pub fn local_md5(args: HashArgs, vm: &VirtualMachine) -> PyResult<PyHasher> { |
nothing calls this directly
no test coverage detected