Skip to content

Commit

Permalink
Merge pull request #881 from gganis/cryptogsi-add-padding-support
Browse files Browse the repository at this point in the history
secgsi: additional fixes for the no-padding case
  • Loading branch information
abh3 committed Dec 14, 2018
2 parents 0e6d5ce + cdcb5af commit 4a00a8b
Showing 1 changed file with 11 additions and 15 deletions.
26 changes: 11 additions & 15 deletions src/XrdSecgsi/XrdSecProtocolgsi.cc
Expand Up @@ -1486,7 +1486,7 @@ XrdSecCredentials *XrdSecProtocolgsi::getCredentials(XrdSecParameters *parm,
// Add bucket with cryptomod to the global list
// (This must be always visible from now on)
CryptoMod = hs->CryptoMod;
if (hs->RemVers >= XrdSecgsiVersDHsigned && !(hs->HasPad)) CryptoMod =+ gNoPadTag;
if (hs->RemVers >= XrdSecgsiVersDHsigned && !(hs->HasPad)) CryptoMod += gNoPadTag;
if (bpar->AddBucket(CryptoMod,kXRS_cryptomod) != 0)
return ErrC(ei,bpar,bmai,0,
kGSErrCreateBucket,XrdSutBuckStr(kXRS_cryptomod),stepstr);
Expand Down Expand Up @@ -3508,6 +3508,16 @@ int XrdSecProtocolgsi::ServerDoCertreq(XrdSutBuffer *br, XrdSutBuffer **bm,
XrdSutBucket *bck = 0;
XrdSutBucket *bckm = 0;

//
// Get version run by client, if there
if (br->UnmarshalBucket(kXRS_version,hs->RemVers) != 0) {
hs->RemVers = Version;
cmsg = "client version information not found in options:"
" assume same as local";
} else {
br->Deactivate(kXRS_version);
}

//
// Extract the main buffer
if (!(bckm = br->GetBucket(kXRS_main))) {
Expand All @@ -3528,16 +3538,6 @@ int XrdSecProtocolgsi::ServerDoCertreq(XrdSutBuffer *br, XrdSutBuffer **bm,
cmsg += cmod;
return -1;
}

//
// Get version run by client, if there
if (br->UnmarshalBucket(kXRS_version,hs->RemVers) != 0) {
hs->RemVers = Version;
cmsg = "client version information not found in options:"
" assume same as local";
} else {
br->Deactivate(kXRS_version);
}
//
// Extract bucket with client issuer hash
if (!(bck = br->GetBucket(kXRS_issuer_hash))) {
Expand Down Expand Up @@ -4925,11 +4925,7 @@ int XrdSecProtocolgsi::ParseCrypto(String clist)
}
}
// On servers the ref cipher should be defined at this point
#if 0
hs->Rcip = refcip[i];
#else
hs->Rcip = sessionCF->Cipher(hs->HasPad, 0,0,0);
#endif
// we are done
return 0;
}
Expand Down

0 comments on commit 4a00a8b

Please sign in to comment.