コード例 #1
0
 public override void GetTargetData(IFreeformEntity_MsgTgt tgt, ref List <byte> buffer)
 {
     if (tgt is FFTgt_B2B_Security_KeyExchange_Request)
     {
         FFTgt_B2B_Security_KeyExchange_Request tgt2 = (FFTgt_B2B_Security_KeyExchange_Request)tgt;
     }
     else if (tgt is FFTgt_B2B_Security_KeyExchange_End)
     {
         FFTgt_B2B_Security_KeyExchange_End tgt2 = (FFTgt_B2B_Security_KeyExchange_End)tgt;
         buffer.AddRange(tgt2.PartialKey.CopyToBuffer(0, 9));
     }
 }
コード例 #2
0
 internal override IFreeformEntity ParseBufferInternal(ref IFreeformEntity entity, IFreeformEntity rootEntity, int id, byte[] buffer)
 {
     if (buffer.Length == 9)
     {
         FFTgt_B2B_Security_KeyExchange_End tgt = new FFTgt_B2B_Security_KeyExchange_End
         {
             PartialKey = buffer
         };
         return(tgt);
     }
     else
     {
         FFTgt_B2B_Security_KeyExchange_Request tgt = new FFTgt_B2B_Security_KeyExchange_Request();
         return(tgt);
     }
 }
コード例 #3
0
 internal override IFreeformEntity ParseBufferInternal(ref IFreeformEntity entity, IFreeformEntity rootEntity, int id, byte[] buffer)
 {
     if (buffer.Length == 9)
     {
         FFTgt_B2B_Security_KeyExchange_End tgt = new FFTgt_B2B_Security_KeyExchange_End
         {
             PartialKey = buffer
         };
         return tgt;
     }
     else
     {
         FFTgt_B2B_Security_KeyExchange_Request tgt = new FFTgt_B2B_Security_KeyExchange_Request();
         return tgt;
     }
 }
コード例 #4
0
        internal static IFreeformEntity_Msg InitKeyExchangeStatusH2G_GMU(this FreeformSecurityTableCollection secTables,
                                                                         IFreeformEntity_Msg request)
        {
            // store the partial key of the gmu
            FFTgt_B2B_Security_KeyExchange_End tgt = request.EntityPrimaryTarget as FFTgt_B2B_Security_KeyExchange_End;
            SECURITY_KEY_INDEX keyIndex            = FreeformEncryptionHelper.GetSecurityKeyIndex(request);

            secTables.StoreOtherPartialKeyHost(keyIndex, tgt.PartialKey);
            secTables.CreateCommonKey(keyIndex);

            IFreeformEntity_Msg message = request.CopyTo(FF_FlowDirection.H2G, new FFCreateEntityRequest_H2G_ResponseRequired()
            {
                PollCode = FF_AppId_H2G_PollCodes.FreeformNoResponse,
            });

            InitSecurityData(message,
                             new FFTgt_B2B_Security_KeyExchange_Status()
            {
                Status = (request.EntityPrimaryTarget is FFTgt_B2B_Security_PartialKey ?
                          FF_AppId_ResponseStatus_Types.Success :
                          FF_AppId_ResponseStatus_Types.Fail),
            });
            return(message);
        }