sorry!
I mean BIO_do_connect()
this function automatically checks the client verificate,
so I need to overwrite the verifiction callback BIO_do_connect uses

thx

On Thu, Sep 24, 2009 at 5:13 PM, Michael Prinzinger <tay...@gmail.com>wrote:

> Thank You very much Victor,
>
> I think I understand now how it can be done.
> If you could give me one last pointer, how to overwrite the verification
> callback function,
> that is called when executing "BIO_do_handshake", I'd be very grateful.
>
> sorry for using misguiding vocanulary :)
>
> Michael
>
>
> On Thu, Sep 24, 2009 at 5:08 PM, Victor Duchovni <
> victor.ducho...@morganstanley.com> wrote:
>
>> On Thu, Sep 24, 2009 at 04:23:03PM +0200, Michael Prinzinger wrote:
>>
>> > > Are you saying that the accepting system expects X.509 client
>> credentials
>> > > from the connecting system, but that the payload (encrypted to the
>> > > receiving node's public key) also contains the same certificate, and
>> > > you want to check that the peer client matches the encrypted request?
>> >
>> > Yes.
>> >
>> > > If so, trust chain verification is completely irrelevant here. You
>> > > don't need to repeat the handshake, rather implement a verification
>> > > callback that accepts untrusted certificates (X.509 trust anchors seem
>> > > inapplicable in this context) and compares them (via the public key
>> > > fingerprint) to the designated certificate in the message payload.
>> >
>> > Yes, this would do what I want.
>> > I would have to call BIO_do_handshake with a customized verification
>> call
>> > back, that decrypts the payload, reads the certificate and compares them
>> > to the one offered by the client?
>>
>> No, your verification callback just always succeeds, allowing invalid
>> trust chains, expired certificates, ... to be used. After the handshake,
>> when you receive and decrypt the payload, you compare the enclosed peer
>> certificate (public key fingerprint) with the peer certificate (public
>> key fingerprint) from the SSL session.
>>
>> > Since there are no central trust authorities withtin the context of this
>> > protocol, I can only directly verify a certificate, resp. some message
>> > signed with the corresponding private key.
>>
>> "Verify" is the wrong term here. It suggests X.509 PKI hierarchies and all
>> that jazz. You just want to validate the peer's client cert against the
>> message routing data in the payload.
>>
>> > > If you want something else, you must explain it in a lot more detail.
>> > >
>> > > Note, your problem is understanding the crypto protocol design, not
>> > > OpenSSL. You are using this list to get help with X.509 and
>> cryptography,
>> > > not really the OpenSSL API, so we are somewhat outside the list
>> charter,
>> > > but such questions are relatively common here...
>> >
>> > Thank you for helping anyways.
>> > If you know a good resource that explains X.509 infrastructure, I'd be
>> glad
>> > to read it.
>>
>> Actively avoid reading anything about X.509 infrastructure. Reading a
>> decent applied cryptography book + a decent book general about SSL/TLS
>> would be better (skipping the parts that deal with X.509
>> "infrastructure").
>>
>> --
>>         Viktor.
>> ______________________________________________________________________
>> OpenSSL Project                                 http://www.openssl.org
>> User Support Mailing List                    openssl-users@openssl.org
>> Automated List Manager                           majord...@openssl.org
>>
>
>

Reply via email to