That's weird, they appear in my sent mail - I'll send them again (ccing you
as well in case there is something odd going on with the list). Please let
me know if you still don't see them.
Cheers,
Ross
On 1 March 2013 17:03, Joy Latten <[email protected]> wrote:
> Hi Ross,
>
> I only received 2 emails with patches 1 and 4 of the set.
> Patches 2 and 3 appear to be missing or I have not received them.
> Could you resend me patches 2 and 3 of the set?
>
> Thanks!
>
> regards,
> Joy
>
> On Fri, 2013-03-01 at 10:11 +0000, Ross McIlroy wrote:
> > Hi,
> >
> > Resending this as 1 patch per email since my original email bounced,
> > apologies if you receive it multiple times.
> >
> > This set of patches enables OpenCryptoKI to be configured to pass slot
> > information between the daemon and the pkcs11 library using sockets
> > rather than shared memory. The reason for these patches is to avoid the
> > potential priv escalation issue whereby members of the pkcs11 group can
> > override the locations of the backend library .so files, and so can
> > execute arbitrary code with the privileges of other pkcs11 group members.
> >
> > The patches build on each other (the first two being refactorings to
> > avoid duplicate code in the second two patches).
> >
> > Please let me know if you have any questions or comments on the patches.
> >
> > Cheers,
> > Ross
> >
> > -------- [PATCH 1/4] ---------------
> >
> >
> > Add a CK_Info_From_Internal helper function to apiutil to avoid
> > duplicating code.
> >
> > The CK_Info_From_Internal function copies the internal representation of
> > CK_Info to the external one.
> >
> > Signed-off-by: Ross McIlroy <[email protected]>
> > ---
> > usr/lib/pkcs11/api/api_interface.c | 36
> > +-----------------------------------
> > usr/lib/pkcs11/api/apiproto.h | 6 ++++++
> > usr/lib/pkcs11/api/apiutil.c | 24 ++++++++++++++++++++++++
> > 3 files changed, 31 insertions(+), 35 deletions(-)
> >
> > diff --git a/usr/lib/pkcs11/api/api_interface.c
> > b/usr/lib/pkcs11/api/api_interface.c
> > index 3489abc..56ad6a8 100755
> > --- a/usr/lib/pkcs11/api/api_interface.c
> > +++ b/usr/lib/pkcs11/api/api_interface.c
> > @@ -2287,8 +2287,6 @@ C_GetFunctionStatus ( CK_SESSION_HANDLE hSession )
> > //
> >
> //------------------------------------------------------------------------
> >
> > -#ifdef PKCS64
> > -
> > CK_RV
> > C_GetInfo ( CK_INFO_PTR pInfo )
> > {
> > @@ -2306,44 +2304,12 @@ C_GetInfo ( CK_INFO_PTR pInfo )
> > }
> >
> > shm = Anchor->SharedMemP;
> > -
> > - memset(pInfo, 0, sizeof(*pInfo));
> > -
> > - pInfo->cryptokiVersion = shm->ck_info.cryptokiVersion;
> > - memset(pInfo->manufacturerID, '\0', 32);
> > - memcpy(pInfo->manufacturerID, &(shm->ck_info.manufacturerID), 32);
> > - pInfo->flags = shm->ck_info.flags;
> > - memcpy(pInfo->libraryDescription,
> > &(shm->ck_info.libraryDescription), 32);
> > - pInfo->libraryVersion = shm->ck_info.libraryVersion;
> > + CK_Info_From_Internal(pInfo, &(shm->ck_info));
> >
> > return CKR_OK;
> > } // end of C_GetInfo
> >
> > -#else
> > -
> > -CK_RV
> > -C_GetInfo ( CK_INFO_PTR pInfo )
> > -{
> > - Slot_Mgr_Shr_t *shm;
> >
> > - OCK_LOG_DEBUG("C_GetInfo\n");
> > - if (! API_Initialized() ) {
> > - OCK_LOG_ERR(ERR_CRYPTOKI_NOT_INITIALIZED);
> > - return CKR_CRYPTOKI_NOT_INITIALIZED;
> > - }
> > -
> > - if ( !pInfo ) {
> > - OCK_LOG_ERR(ERR_FUNCTION_FAILED);
> > - return CKR_FUNCTION_FAILED;
> > - }
> > -
> > - shm = Anchor->SharedMemP;
> > - memcpy(pInfo, &(shm->ck_info), sizeof(CK_INFO));
> > -
> > - return CKR_OK;
> > -} // end of C_GetInfo
> > -
> > -#endif
> >
> >
> //------------------------------------------------------------------------
> > // API function C_GetMechanismInfo
> > diff --git a/usr/lib/pkcs11/api/apiproto.h
> b/usr/lib/pkcs11/api/apiproto.h
> > index 69702c7..4671446 100755
> > --- a/usr/lib/pkcs11/api/apiproto.h
> > +++ b/usr/lib/pkcs11/api/apiproto.h
> > @@ -332,6 +332,12 @@ int Valid_Session(CK_SESSION_HANDLE, ST_SESSION_T
> *);
> > void DL_UnLoad( API_Slot_t *, CK_SLOT_ID);
> > void DL_Unload(API_Slot_t *);
> >
> > +#ifdef PKCS64
> > +void CK_Info_From_Internal ( CK_INFO_PTR dest, CK_INFO_PTR_64 src );
> > +#else
> > +void CK_Info_From_Internal ( CK_INFO_PTR dest, CK_INFO_PTR src );
> > +#endif
> > +
> > int sessions_exist(CK_SLOT_ID);
> >
> > #ifdef DEBUG
> > diff --git a/usr/lib/pkcs11/api/apiutil.c b/usr/lib/pkcs11/api/apiutil.c
> > index 4474648..dafb3c8 100755
> > --- a/usr/lib/pkcs11/api/apiutil.c
> > +++ b/usr/lib/pkcs11/api/apiutil.c
> > @@ -1010,3 +1010,27 @@ DL_Load_and_Init(sltp,slotID )
> > return TRUE;
> >
> > }
> > +
> > +#ifdef PKCS64
> > +// copies internal representation of ck_info structure to local process
> > representation
> > +void
> > +CK_Info_From_Internal ( CK_INFO_PTR dest, CK_INFO_PTR_64 src ) {
> > +
> > + memset(dest, 0, sizeof(*dest));
> > +
> > + dest->cryptokiVersion = src->cryptokiVersion;
> > + memset(dest->manufacturerID, '\0', 32);
> > + memcpy(dest->manufacturerID, src->manufacturerID, 32);
> > + dest->flags = src->flags;
> > + memcpy(dest->libraryDescription, src->libraryDescription, 32);
> > + dest->libraryVersion = src->libraryVersion;
> > +}
> > +
> > +#else
> > +
> > +void
> > +CK_Info_From_Internal ( CK_INFO_PTR dest, CK_INFO_PTR src ) {
> > + memcpy(dest, src, sizeof(CK_INFO));
> > +}
> > +
> > +#endif
> > -- 1.8.1.3
> >
> >
> ------------------------------------------------------------------------------
> > Everyone hates slow websites. So do we.
> > Make your web apps faster with AppDynamics
> > Download AppDynamics Lite for free today:
> > http://p.sf.net/sfu/appdyn_d2d_feb
> > _______________________________________________
> > Opencryptoki-tech mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech
> >
>
>
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Opencryptoki-tech mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opencryptoki-tech