es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La firma de Azure KeyVault falla durante la verificación usando bibliotecas de javascript de manera intermitente.

Estoy usando Azure Key Vault para crear y almacenar mis claves Secp256k1. También estoy usando la API de firma para obtener la firma de mi cadena de entrada. Estoy trabajando en una red de blockchain Secp256K1. Estos son los pasos que sigo para obtener la firma en Golang.

  1. Convertir mi cadena Hex en Byte[]
  2. Sha256 de este Byte[]
  3. Codificación RawURL de este Sha.

b64.RawURLEncoding.EncodeToString(sha)

  1. Enviando esto a Key Vault para la firma.
  2. Decodificando la respuesta usando RawURLEncoding.

b64.RawURLEncoding.DecodeString(*keyOpsResp.Result)

  1. Haciendo Hex del []Byte array devuelto en el quinto paso.
  2. Enviando la firma a la cadena de blockchain.

El problema que enfrento es que la firma es inválida a veces. En 2/5 ocasiones funciona y otras veces falla la verificación de la firma.
Estoy pensando que hay algunos caracteres especiales o algo que me falta en el relleno.
¿Cómo puedo resolver esto?

PD: Azure utiliza firmas no determinísticas, mientras que las cadenas suelen utilizar signos determinísticos. Leí algo y descubrí que para su verificación no importa, ambas podrían verificarse con éxito. Avíseme si estoy equivocado.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que está experimentando inconsistencias en la firma generada utilizando Azure Key Vault. Esto podría deberse a un problema en la codificación o decodificación de la entrada o salida.

    Para resolver este problema, puede considerar lo siguiente:

    1. Asegúrese de estar utilizando el método de codificación correcto. Por ejemplo, si está utilizando la codificación base64url, asegúrese de implementarla correctamente.
    2. Verifique el relleno de la cadena codificada. El relleno puede afectar la integridad de la firma. Asegúrese de que la codificación y decodificación incluya un relleno adecuado.

    3. Intente la firma determinista en lugar de la firma no determinista. Como las cadenas suelen utilizar firmas deterministas, cambiar a la firma determinista puede ayudar a resolver el problema.

    4. Verifique que está utilizando el algoritmo y el tamaño de clave correctos para generar la firma.

    5. Verifique si existen alguna restricción en la cadena de entrada o la firma de salida, lo cual puede estar causando la inconsistencia.

    También puede ser útil registrar y depurar el código para determinar los valores específicos de entrada / salida que están causando la verificación de la firma para fallar.

Comments are closed.