MCPcopy Index your code
hub / github.com/RustPython/RustPython / hashlib_new

Function hashlib_new

crates/stdlib/src/hashlib.rs:560–605  ·  view source on GitHub ↗
(args: NewHashArgs, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

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> {

Callers

nothing calls this directly

Calls 6

resolve_dataFunction · 0.85
newFunction · 0.85
to_lowercaseMethod · 0.80
ErrClass · 0.50
as_strMethod · 0.45
into_pyobjectMethod · 0.45

Tested by

no test coverage detected