Ed's already covered how to make use of the KDF.

With 2: the byte array is actually an encoding of an ASN.1 SEQUENCE
containing two INTEGER fields (r and s). This is the standard way to
present a DSA signature. Note if you need to encode your own on the
other side, integers in ASN.1 are big-endian and signed, much grief will
result if this is neglected.

Regards,

David

On 04/01/16 21:06, Jan Hammer wrote:
> Hi!
>  
> Im exchanging keys between BouncyCastle C# and the Cryptovision C API,
> however I have some compatibility problems doing so:
>  
> 1.:
> Cryptovision derives the key the following way, from the other partys
> public key and the own private key (the number of derivations can be
> chosen):
>  **  This function calculates the common secret d1 * Q2 (= d1 * d2 * G)
>  **  and derives the output key from the x-coordinate of the secret with
>  **  the KDF2HMACSHA1 derivation function of the library.
>  
> Using AgreementUtilities.GetBasicAgreement("ECDH") and =>
> CalculateAgreement() obviously leads to a different result.
> How does the CalculateAgreement function calculate the output and
> therefore is there a way to come to the same conclusion as on the
> Cryptovision part?
>  
>  
> 2.:
> Cryptovision computes the ECDSA signature according to ANSI X9.62, the
> parameters im getting are the  signature_r and signature_s components.
> In BouncyCastle im using SignerUtilities.GetSigner("ECDSA") to compute
> and verify the signatures.
> So now I have the byte[] signature on the BouncyCastle side and the r
> and s components of the signature on the Cryptovision side,
> any information what the byte[] computed in BouncyCastle consists of
> (r/s, r+s components..?) or how these things can be put together?
>  
> Any information will be highly appreciated!
>  
> Thanks in advance and regards,
> Jan Hammer
>  

Reply via email to