pub fn vkey(path: &str, target_name: &str) -> String {
    let program_dir = std::path::Path::new(path);
    let metadata_file = program_dir.join("Cargo.toml");
    let mut metadata_cmd = cargo_metadata::MetadataCommand::new();
    let metadata = metadata_cmd.manifest_path(metadata_file).exec().unwrap();
    let target_elf_paths =
        generate_elf_paths(&metadata, None).expect("failed to collect target ELF paths");
    let (_, path) =
        target_elf_paths.iter().find(|(t, _)| t == target_name).expect("failed to find the target");
    let prover = SP1Prover::<CpuProverComponents>::new();
    let mut file = File::open(path).unwrap();
    let mut elf = Vec::new();

    file.read_to_end(&mut elf).unwrap();
    let (_, _, _, vk) = prover.setup(&elf);
    vk.bytes32()
}
Returns the verification key for the provided program.

# Arguments

* `path` - A string slice that holds the path to the program directory.
* `target_name` - A string slice that holds the binary target.

Note: If used in a script `build.rs`, this function should be called *after* [`build_program`]
to returns the vkey corresponding to the latest program version which has just been compiled.
crates/build/src/lib.rs