co-identity 0.1.0

COKIT DID and DIDComm implementations.
Documentation
// SPDX-License-Identifier: AGPL-3.0-only
// Copyright (C) 2026 1io BRANDGUARDIAN GmbH

use crate::{Jwk, VerificationMethod};

pub fn from_did_key_verification_method(
	vm: did_key::VerificationMethod,
	key: Option<did_key::KeyFormat>,
) -> VerificationMethod {
	let mut result = VerificationMethod {
		id: vm.id,
		method_type: vm.key_type.into(),
		controller: vm.controller,
		public_key_jwk: None,
		public_key_multibase: None,
		public_key_base58: None,
		public_key_hex: None,
	};
	if let Some(key) = key.or(vm.public_key) {
		match key {
			did_key::KeyFormat::Base58(v) => {
				result.public_key_base58 = Some(v);
			},
			did_key::KeyFormat::Multibase(v) => {
				result.public_key_multibase = std::str::from_utf8(&v).ok().map(|f| f.to_owned());
			},
			did_key::KeyFormat::JWK(v) => {
				result.public_key_jwk =
					Some(Jwk { kid: v.key_id, kty: v.key_type, crv: v.curve, x: v.x, y: v.y, d: v.d });
			},
		}
	}
	result
}