generate key block when setting the master secret.

This commit is contained in:
Vincent Hanquez 2011-12-20 07:41:15 +00:00
parent b3b7051129
commit 6f02bb8548
3 changed files with 2 additions and 2 deletions

View file

@ -39,7 +39,6 @@ processPacket (Record ProtocolType_Alert _ fragment) = return . Alert =<< return
processPacket (Record ProtocolType_ChangeCipherSpec _ fragment) = do processPacket (Record ProtocolType_ChangeCipherSpec _ fragment) = do
returnEither $ decodeChangeCipherSpec $ fragmentGetBytes fragment returnEither $ decodeChangeCipherSpec $ fragmentGetBytes fragment
switchRxEncryption switchRxEncryption
isClientContext >>= \cc -> when (not cc) setKeyBlock
return ChangeCipherSpec return ChangeCipherSpec
processPacket (Record ProtocolType_Handshake ver fragment) = do processPacket (Record ProtocolType_Handshake ver fragment) = do

View file

@ -48,7 +48,7 @@ processRecord record@(Record ty _ fragment) = do
-} -}
postprocessRecord :: Record Ciphertext -> TLSSt (Record Ciphertext) postprocessRecord :: Record Ciphertext -> TLSSt (Record Ciphertext)
postprocessRecord record@(Record ProtocolType_ChangeCipherSpec _ _) = postprocessRecord record@(Record ProtocolType_ChangeCipherSpec _ _) =
switchTxEncryption >> isClientContext >>= \cc -> when cc setKeyBlock >> return record switchTxEncryption >> return record
postprocessRecord record = return record postprocessRecord record = return record
{- {-

View file

@ -223,6 +223,7 @@ setMasterSecret masterSecret = do
hasValidHandshake "master secret" hasValidHandshake "master secret"
updateHandshake "master secret" (\hst -> hst { hstMasterSecret = Just masterSecret } ) updateHandshake "master secret" (\hst -> hst { hstMasterSecret = Just masterSecret } )
setKeyBlock
return () return ()
setMasterSecretFromPre :: MonadState TLSState m => Bytes -> m () setMasterSecretFromPre :: MonadState TLSState m => Bytes -> m ()