示例#1
0
        private void DealReceivedData(User client, byte[] packetBytes)
        {
            SecuruStik.Protocal.Packet  packet  = (Packet)CommunicatingProtocal.ExplainPacket(packetBytes);
            SecuruStik.Protocal.Request request = packet as Request;
            switch (packet.Type)
            {
            case MessageType.Request_Login:
                Login(client, request);
                break;

            case MessageType.Request_Logout:
                Logout(client);
                break;

            case MessageType.Request_GetPK:
                Request_GetPK(client, request);
                break;

            case MessageType.Request_SetPK:
                Request_SetPK(client, request);
                break;

            case MessageType.Request_GetSharingInfo:
                Request_GetSharingInfo(client, request.UserID);
                break;

            case MessageType.Request_SetSharingInfo:
                Request_SetSharingInfo(client, request);
                break;
            }
        }
 private void Logout()
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(
         MessageType.Request_Logout,
         this.UserEmail);
     this.Send(r);
     this.IsInited = false;
 }
        private void Login()
        {
            SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(
                MessageType.Request_Login , this.UserEmail );

            byte[] packetBytes = CommunicatingProtocal.Serialize( r );
            this.bw.Write( packetBytes.Length );
            this.bw.Write( packetBytes );
            this.bw.Flush();

            this.IsLogin = true;
        }
        private void Login()
        {
            SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(
                MessageType.Request_Login, this.UserEmail);

            byte[] packetBytes = CommunicatingProtocal.Serialize(r);
            this.bw.Write(packetBytes.Length);
            this.bw.Write(packetBytes);
            this.bw.Flush();

            this.IsLogin = true;
        }
 public Boolean Request_GetPK(String UserID)
 {
     try
     {
         if (this.PKList.Contains(UserID) == false)
         {
             this.PKList.Add(UserID);
             SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(MessageType.Request_GetPK, UserID);
             return(this.Send(r));
         }
         else
         {
             return(true);
         }
     }
     catch (System.Exception) { return(false); }
 }
 private void Logout()
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(
                         MessageType.Request_Logout ,
                         this.UserEmail );
     this.Send( r );
     this.IsInited = false;
 }
 public Boolean Request_SetSharingInfo( SecuruStik.Protocal.SharingInfo sharingInfo )
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(MessageType.Response_SetSharingInfo,this.UserEmail,sharingInfo);
     return this.Send( r );
 }
 public Boolean Request_SetPK( SecuruStik.Protocal.PublicKey pk )
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request( MessageType.Request_SetPK , this.UserEmail , pk );
     return this.Send( r );
 }
 public Boolean Request_GetSharingInfo()
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request( MessageType.Request_GetSharingInfo , this.UserEmail );
     return this.Send( r );
 }
 public Boolean Request_GetPK( String UserID )
 {
     try
     {
         if (this.PKList.Contains(UserID) == false)
         {
             this.PKList.Add(UserID);
             SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(MessageType.Request_GetPK, UserID);
             return this.Send(r);
         }
         else
             return true;
     }
     catch (System.Exception) { return false; }
 }
示例#11
0
        private void ShareWorker_DoWork( object sender , DoWorkEventArgs e )
        {
            while( this.ShareTaskWaitingList.Count != 0 )
            {
                for ( int i = this.ShareTaskWaitingList.Count - 1 ; i >= 0 ; i-- )
                {
                    ShareTaskUnit worker = this.ShareTaskWaitingList[i];
                    PublicKey pubkey = worker.PK;
                    //Key1
                    PRE_KEY key = ProxyReEncryption.GenKey(
                        PreKeyring.UserKey.PK1 ,
                        PreKeyring.UserKey.PK2 ,
                        PreKeyring.UserKey.SK1 ,
                        PreKeyring.UserKey.SK2 );

                    //Key_pk2
                    PRE_PK key2_pk = ProxyReEncryption.GenPK(pubkey.PK1,pubkey.PK2);

                    //ReKey
                    PRE_Cipher reKey = ProxyReEncryption.KeyEncrypt( key , key2_pk , worker.Key );

                    String cpyRef = this.DropboxController.GetCopyRef(
                        this.DropboxController.SecuruStikFolder2RemoteDropboxPath( worker.FilePath ) );
                    if ( String.IsNullOrEmpty( cpyRef ) )
                        continue;//获取copyref失败处理
                    else
                    {
                        worker.CpyRef = cpyRef;
                    }

                    SecuruStik.Protocal.SharingInfo si = new SecuruStik.Protocal.SharingInfo(
                        this.Email ,
                        pubkey.ID ,
                        Path.GetFileName( worker.FilePath ) ,
                        worker.CpyRef ,
                        reKey.E,reKey.F,reKey.U,reKey.W );

                    Request r = new Request( MessageType.Request_SetSharingInfo , this.DropboxController.Email , si );
                    this.ProxyServerController.Send( r );
                    this.ShareTaskWaitingList.Remove( worker );
                    SecuruStikMessageQueue.SendMessage_Share_End( Path.GetFileName( worker.FilePath ) , worker.ID_TO );
                }
            }
        }
 public Boolean Request_SetSharingInfo(SecuruStik.Protocal.SharingInfo sharingInfo)
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(MessageType.Response_SetSharingInfo, this.UserEmail, sharingInfo);
     return(this.Send(r));
 }
 public Boolean Request_SetPK(SecuruStik.Protocal.PublicKey pk)
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(MessageType.Request_SetPK, this.UserEmail, pk);
     return(this.Send(r));
 }
 public Boolean Request_GetSharingInfo()
 {
     SecuruStik.Protocal.Request r = new SecuruStik.Protocal.Request(MessageType.Request_GetSharingInfo, this.UserEmail);
     return(this.Send(r));
 }