色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【微五科技CF3310開發(fā)板試用體驗(yàn)】利用硬件加密功能,搞定串口加密通訊

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-23 14:20 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2289947_1_1.html

CF3310開發(fā)板是國產(chǎn)首創(chuàng)RISC-V安全微控制器,從官方資料可以了解到其所支持的安全功能:

image.png

其在硬件上,對加密功能進(jìn)行了針對性的加強(qiáng):

image.png

并在硬件級別提供了多種加密算法

image.png

在經(jīng)過學(xué)習(xí)官方資料包中提供的demo,以及經(jīng)過官方技術(shù)人員手把手的指導(dǎo),結(jié)合自己所了解的Python加密知識,實(shí)現(xiàn)了串口加密通信

這篇分享中,演示的是從開發(fā)板發(fā)送經(jīng)過加密處理的數(shù)據(jù);

然后在上位機(jī)上,接收并解密對應(yīng)的數(shù)據(jù)。

在開始之前,請先閱讀我的上一篇分享【CF3310開發(fā)板的串口使用】?,了解串口的使用。

可以直接使用跳線帽,按照如圖所示短接對應(yīng)的引腳,這樣Type-C口連接到電腦后,就能直接使用串口工具連接其對應(yīng)的串口進(jìn)行調(diào)試了:

image.png

然后,我選擇的加密方式為AES_CBC:

image.png

先查看官方演示代碼的src/demo/algo_demo.c中AES部分的代碼,來了解加密解密的具體處理。

因?yàn)橐褂肁ES_CBC加密,所以重點(diǎn)關(guān)注其中:aes.type = ALG_ECBaes.KBits = ALG_KEY128部分的代碼:

aes.mode = ALG_ENCRYPT;
	aes.type = ALG_ECB;

	aes.KBits = ALG_KEY128;

	HAL_AES_SetSecurityLevel(&aes);

	if(HAL_AES_Cryptographic(&aes,(uint8_t *)key,(uint8_t *)iv,(uint8_t *)plain,temp,32))
	{
		RETERR();
	}

	if(memcmp((uint8_t *)cipher_aes128_ecb,temp,32) != 0)
	{
		RETERR();
	}

	printf("	通過
");

上述代碼中,重點(diǎn)是加密函數(shù):

uint8_t HAL_AES_Cryptographic(AES_ConfigTypeDef *hcfg,uint8_t *pKey,uint8_t *pIV,uint8_t *srcBuffer,uint8_t *destBuffer,uint32_t length)

官方提供的各種加密算法,都通過該函數(shù)進(jìn)行調(diào)用,來獲取加密后的結(jié)果。

參數(shù)分別為:

  • hcfg:AES加密定義
  • pKey:加密密鑰
  • pIV:加密偏移向量
  • srcBuffer:明文
  • destBuffer:加密結(jié)果
  • length:塊大小

最終,實(shí)際實(shí)現(xiàn)的代碼如下:

/**
 * [url=home.php?mod=space&uid=1455510]@file[/url]    uart_sec.c
 * [url=home.php?mod=space&uid=40524]@author[/url]  HonestQiao
 * [url=home.php?mod=space&uid=644434]@version[/url] V1.0
 * @date    2022.6.28
 * [url=home.php?mod=space&uid=2666770]@Brief[/url]   uart sec test
 *
 */
// eport
#include "eport_hal.h"

// uart
#include "uart_hal.h"

// algo
#include "algo_demo.h"
#include "algo_hal.h"
#include "trng_hal.h"

#include "cpm_hal.h"
#include "hal.h"

#include "delay.h"
#include "debug.h"

uint8_t uart_tx_buf[128];
uint8_t uart_rx_buf[128];
UART_HandleTypeDef UART_Handle;

int32_t counter = 0;

void AES_SEND_TEST(void)
{
    AES_ConfigTypeDef aes;

    uint8_t len = 0;
    uint8_t loop = 0;

    uint8_t key[32] = "1234567890654321";   // 加加密密鑰
    uint8_t iv[] = "9876543210123456";      // AES_ECB實(shí)際不用
    uint8_t plain[32];                      // 非存放明文
    uint8_t temp[32];                       // 臨時(shí)存放加密后的結(jié)果

    len = strlen(key);
    memset(key + len, 0x00, 32 - len);      // 將加密密鑰用 0x00 填充到32位
    memset(plain, 0x00, 32);                // 明文清空
    memset(temp, 0x00, 32);                 // 加密結(jié)果存放清空

    counter++;                              // 計(jì)數(shù)器遞增
    if (counter > 999999)                   // 最大6位數(shù)
    {
        counter = 1;
    }
    sprintf(plain, "%06d", counter);        // 將要被加密的明文信息

    // printf("key=%s len=%d
", key, sizeof(key) / sizeof(key[0]));
    // printf("plain=%s len=%d
", plain, sizeof(plain) / sizeof(plain[0]));

    // 設(shè)置AES_ECB128加密
    aes.level = dpa_disable;
    aes.type = ALG_ECB;
    aes.KBits = ALG_KEY128;
    aes.mode = ALG_ENCRYPT;
    HAL_AES_SetSecurityLevel(&aes);

    // 加密處理
    if (HAL_AES_Cryptographic(&aes, (uint8_t *)key, (uint8_t *)iv, (uint8_t *)plain, temp, 32))
    {
        memset(uart_tx_buf, 0x00, 256);
        sprintf(uart_tx_buf, "ERROR:AES_256_ECB crypt error.
");
        HAL_UART_Transmit(&UART_Handle,
                          uart_tx_buf,
                          sizeof(uart_tx_buf) / sizeof(uart_tx_buf[0]),
                          1000000);
        return;
    }

    // 將加密結(jié)果轉(zhuǎn)換為需要發(fā)送的ASCII字符串
    memset(uart_tx_buf, 0x00, 256);
    sprintf(uart_tx_buf, "DATA:%06d:", counter);    // 測試階段,將明文也發(fā)送過去
    len = strlen(uart_tx_buf);
    for (loop = 0; loop < 32; loop++)
    {
        uart_tx_buf[len + loop * 3 + 0] = "0123456789ABCDEF"[(temp[loop] >> 4) & 0x0F];     // 高位轉(zhuǎn)換為ASCII字符
        uart_tx_buf[len + loop * 3 + 1] = "0123456789ABCDEF"[temp[loop] & 0x0F];            // 低位轉(zhuǎn)換為ASCII字符
        uart_tx_buf[len + loop * 3 + 2] = ' ';                                              // 空格
    }
    uart_tx_buf[len + loop * 3] = '
';                                                     // 結(jié)尾

    len = len + loop * 3 + 1;                                                               // 計(jì)算發(fā)送長度

    // 通過串口發(fā)送數(shù)據(jù)
    HAL_UART_Transmit(&UART_Handle,
                      uart_tx_buf,
                      len,
                      1000000);
}

// 串口初始化
void Bsp_UARTInit1(UART_HandleTypeDef *huart, UART_TypeDef *puart)
{
    huart->Init.BaudRate = 115200;
    huart->Init.IPSFreq = g_ips_clk;
    huart->Init.Parity = UART_PARITY_MODE_NONE;
    huart->Init.WordLength = UART_WORDLENGTH_8B;
    huart->Instance = puart;

    HAL_UART_Init(huart);
}

// 實(shí)際測試主體邏輯
void UART_CPU_SEC_RxTxTest(void)
{
    // LED引腳設(shè)置
    EPORT_InitTypeDef eport;
    EPORT_PinDef pin_num;
    EPORT_TypeDef *eport_base;

    pin_num = EPORT_PIN4;
    eport_base = EPORT;

    eport.pin = pin_num;
    eport.func = GPIO_FUN;
    eport.dir = GPIO_DIR_OUT;
    eport.output_mode = EPORT_OUTPUT_MODE_CMOS;
    eport.pull_mode = EPORT_PULL_UP;
    HAL_EPORT_Init(eport_base, &eport);

    // algo設(shè)置
    TRNG_HandleTypeDef htrng;
    htrng.instance = TRNG;
    htrng.dividor = 59;
    HAL_CPM_ModuleClkCmd(MODULE_CLK_CRYPTO, ENABLE);
    HAL_TRNG_Init(&htrng);

    int8_t status = 0;
    uint16_t loop = 0;

    HAL_StatusTypeDef tmp_status;

    /* init */
    Bsp_UARTInit1((UART_HandleTypeDef *)(&UART_Handle), UART);

    while (1)
    {
        HAL_UART_DisItTcie(&UART_Handle);
        HAL_UART_DisItTie(&UART_Handle);
        HAL_UART_DisItRe(&UART_Handle);

        while (1)
        {
            // 讓LED交替閃亮,以示程序正在運(yùn)行
            HAL_EPORT_TogglePin(eport_base, pin_num);
            if (!status)
            {
                HAL_EPORT_WritePin(eport_base, pin_num, BIT_RESET);
            }
            else
            {
                HAL_EPORT_WritePin(eport_base, pin_num, BIT_SET);
            }
            status = !status;

            // AES串口加密數(shù)據(jù)發(fā)送測試
            AES_SEND_TEST();

            DelayMS(1000);
        }
    }
}

// 測試入口函數(shù)
void UART_SEC_Run(void)
{
    UART_CPU_SEC_RxTxTest();
}

將上述代碼覆蓋掉src/demo/uart_demo.c,然后在src/inc/demo.h中開啟UART,就能編譯下載了。

以上的代碼,整合了EPORT控制PIN4,UART數(shù)據(jù)發(fā)送,以及ALGO加密算法,每1秒鐘發(fā)送一次數(shù)據(jù)。

所以實(shí)際的連線如下:

iShot_2022-06-24_17.10.36.png

代碼中,使用的:

  • 加密算法為:AES_ECB_128
  • 加密密鑰為:1234567890654321
  • 加密的明文為:counter計(jì)數(shù)器,每秒遞增1次,然后前面補(bǔ)0到6位長度,如:0000109
  • 串口發(fā)送的實(shí)際數(shù)據(jù):DATA:6位明文:密文HEX的ASCII碼

發(fā)送的數(shù)據(jù)中,帶有明文的目的,是為了方便上位機(jī)測試驗(yàn)證。

將開發(fā)板使用Type-C連接到電腦,在上位機(jī)中,使用串口工具監(jiān)聽串口,然后編譯下載運(yùn)行以上代碼,就可以收到如下串口信息了:

image.png

DATA:6位明文:后面的部分,就是6為明文加密后對應(yīng)的HEX值,我們獲取該值,然后使用AES_ECB進(jìn)行解密,就能還原得到明文了。

解密的部分,我使用Python來實(shí)現(xiàn)的。

首先,需要安裝pycrypt:

  • Linux/macOS:pip3 install pycryptodome
  • Windows:pip install pycrypto

然后,使用如下的代碼:

import serial
import serial.tools.list_ports
import hashlib
import base64
from Crypto.Cipher import AES
from Crypto.Cipher import DES
from Crypto.Util.Padding import pad, unpad

password = b''

class Communication():

    #初始化
    def __init__(self,com,bps,timeout):
        self.port = com
        self.bps = bps
        self.timeout =timeout
        global Ret
        try:
            # 打開串口,并得到串口對象
             self.main_engine= serial.Serial(self.port,self.bps,timeout=self.timeout)
            # 判斷是否打開成功
             if (self.main_engine.is_open):
               Ret = True
        except Exception as e:
            print("---異常---:", e)

    #打開串口
    def Open_Engine(self):
        self.main_engine.open()

    #關(guān)閉串口
    def Close_Engine(self):
        self.main_engine.close()
        print(self.main_engine.is_open)  # 檢驗(yàn)串口是否打開

    # 打印可用串口列表
    @staticmethod
    def Print_Used_Com():
        port_list = list(serial.tools.list_ports.comports())
        print(port_list)

    def Read_Size(self,size):
        return self.main_engine.read(size=size)

    #接收一行數(shù)據(jù)
    # 使用readline()時(shí)應(yīng)該注意:打開串口時(shí)應(yīng)該指定超時(shí),否則如果串口沒有收到新行,則會(huì)一直等待。
    # 如果沒有超時(shí),readline會(huì)報(bào)異常。
    def Read_Line(self):
        return self.main_engine.readline()

    #發(fā)數(shù)據(jù)
    def Send_data(self,data):
        self.main_engine.write(data)

    def Recive_data(self,way):
        # 循環(huán)接收數(shù)據(jù),此為死循環(huán),可用線程實(shí)現(xiàn)
        print("開始接收數(shù)據(jù):")
        data = b''
        while True:
            try:
                # 一個(gè)字節(jié)一個(gè)字節(jié)的接收
                if self.main_engine.in_waiting:
                    if(way == 0):
                        for i in range(self.main_engine.in_waiting):
                            print("接收ascii數(shù)據(jù):"+str(self.Read_Size(1)))
                            data1 = self.Read_Size(1).hex()#轉(zhuǎn)為十六進(jìn)制
                            data2 = int(data1,16)#轉(zhuǎn)為十進(jìn)制
                            print("收到數(shù)據(jù)十六進(jìn)制:"+data1+"  收到數(shù)據(jù)十進(jìn)制:"+str(data2))
                    if(way == 1):
                        #整體接收
                        # data = self.main_engine.read(
                        #		self.main_engine.in_waiting).decode("utf-8")#方式一
                        tmp = self.main_engine.read_all()#方式二
                        print("接收ascii數(shù)據(jù):", tmp)                        
                        data = data + tmp
                        if tmp[-1] == 10:
                            data_hex = bytes.fromhex(data[12:-2].decode())
                            data_plain = data[5:11].decode()
                            print("	接收到一批數(shù)據(jù):", data[12:-2])                            
                            print("	接收到的明文數(shù)據(jù):", data_plain)                            
                            date_de = decrypt(data_hex, password)
                            data_de_plain = date_de.decode()
                            print("	解碼后的明文數(shù)據(jù):", data_de_plain)
                            data = b''                            
                        
            except Exception as e:
                print("異常報(bào)錯(cuò):",e)

def encrypt(data, password):
    bs = AES.block_size
    pad = lambda s: s.ljust(bs,b'') 
    cipher = AES.new(password, AES.MODE_ECB)
    data_used = pad(data)
    print("pad(data):", len(data_used), data_used)
    data = cipher.encrypt(data_used)
    return (data)

def decrypt(data, password):
    bs = AES.block_size
    if len(data) < bs:
        print("direct return",data,len(data),bs)
        return (data)
    cipher = AES.new(password, AES.MODE_ECB)
    data  = cipher.decrypt(data)
    return (data)

if __name__=="__main__":
    AES.block_size = 32
    password = b'1234567890654321' #16,24,32位長的密碼

    com = Communication("/dev/cu.usbserial-14240", 115200, None)
    com.Print_Name()
    plain,denc_hex = com.Recive_data(1)

將以上代碼,保存為:uart_sec_recv.py,準(zhǔn)備執(zhí)行。執(zhí)行以前,要先關(guān)掉串口監(jiān)聽工具。

使用python uart_sec_recv.py執(zhí)行,開始監(jiān)聽串口,就能接收到串口數(shù)據(jù),并進(jìn)行解碼:

image.png

從上述結(jié)果中可以看到,解碼后的數(shù)據(jù),與傳送過來的明文數(shù)據(jù),是一致的,因此加密發(fā)送并解碼成功。

以上的分享,演示的是開發(fā)板發(fā)送加密數(shù)據(jù),使用了AES_ECB128加密算法,參考algo_demo.c,可以試用其他的加密算法,當(dāng)然,上位機(jī)的代碼也需要進(jìn)行針對性的處理。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微五科技
    +關(guān)注

    關(guān)注

    1

    文章

    27

    瀏覽量

    2612
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    301

    瀏覽量

    2140
  • CF3310
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    353
收藏 人收藏

    評論

    相關(guān)推薦

    支持遠(yuǎn)程脫機(jī)密文下載加密芯片SMEC編程器開發(fā)板介紹

    這里主要介紹下SMEC80ST、SMEC88SP/ST、SMEC98SP編程器開發(fā)板(后文簡稱SMEC編程器)的遠(yuǎn)程脫機(jī)密文下載功能。SMEC編程器主芯片本身是一個(gè)顆具有最高安全等級的銀行
    發(fā)表于 01-08 11:30

    STM32配合可編程加密芯片SMEC88ST的防抄加密方案設(shè)計(jì)

    芯片部分核心的算法、功能代碼以及核心數(shù)據(jù)放入加密芯片,開發(fā)者設(shè)計(jì)的加密方案更加靈活、安全、可靠。 本方案選用具有智能卡32位內(nèi)核的加密芯片S
    發(fā)表于 12-27 13:03

    有獎(jiǎng)丨米爾 全志T536開發(fā)板免費(fèi)試用

    米爾與全志合作發(fā)布的新品基于全志T536應(yīng)用處理器的MYD-LT536-GK開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了3塊價(jià)值750元的MYD-LT536-GK開發(fā)板發(fā)起試用活動(dòng)您不僅可以免
    的頭像 發(fā)表于 12-26 08:05 ?250次閱讀
    有獎(jiǎng)丨米爾 全志T536<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    瑞芯平臺(tái)Android系統(tǒng)串口測試方法,觸覺智能RK3562開發(fā)板演示

    瑞芯方案主板Android系統(tǒng)串口測試方法,通用RK3568、RK3566、RK3588、RK3576等。觸覺智能RK3562開發(fā)板演示
    的頭像 發(fā)表于 12-24 11:51 ?357次閱讀
    瑞芯<b class='flag-5'>微</b>平臺(tái)Android系統(tǒng)<b class='flag-5'>串口</b>測試方法,觸覺智能RK3562<b class='flag-5'>開發(fā)板</b>演示

    淺談加密芯片的一種破解方法和對應(yīng)加密方案改進(jìn)設(shè)計(jì)

    目前市面上很多防抄加密方案都是基于加密芯片的安全存儲(chǔ)和密文通訊來實(shí)現(xiàn)對主MCU方案的保護(hù)。比如把主MCU用到的一些參數(shù)、配置信息等存儲(chǔ)在加密
    發(fā)表于 12-20 15:31

    淺談加密芯片的一種破解方法和加密方案改進(jìn)設(shè)計(jì)

    目前市面上很多防抄加密方案都是基于加密芯片的安全存儲(chǔ)和密文通訊來實(shí)現(xiàn)對主MCU方案的保護(hù)。比如把主MCU用到的一些參數(shù)、配置信息等存儲(chǔ)在加密
    發(fā)表于 12-20 15:10

    追加名額丨米爾瑞芯RK3576開發(fā)板有獎(jiǎng)試用

    米爾與瑞芯合作發(fā)布的新品基于瑞芯RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)加碼啦~~米爾追加了2塊價(jià)值849元的MYD-LR3576
    的頭像 發(fā)表于 11-22 01:00 ?269次閱讀
    追加名額丨米爾瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    【RA8D1試用活動(dòng)】RA8D1B-CPKCOR開發(fā)板移植linux

    【RA8D1試用活動(dòng)】RA8D1B-CPKCOR開發(fā)板移植linux
    的頭像 發(fā)表于 11-16 01:02 ?320次閱讀
    【RA8D1<b class='flag-5'>試用</b>活動(dòng)】RA8D1B-CPKCOR<b class='flag-5'>開發(fā)板</b>移植linux

    有獎(jiǎng)丨米爾 瑞芯RK3576開發(fā)板免費(fèi)試用

    米爾與瑞芯合作發(fā)布的新品基于瑞芯RK3576應(yīng)用處理器的MYD-LR3576開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了7塊價(jià)值849元的MYD-LR3576
    的頭像 發(fā)表于 11-12 01:00 ?405次閱讀
    有獎(jiǎng)丨米爾 瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發(fā)板</b>免費(fèi)<b class='flag-5'>試用</b>

    有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動(dòng)開始報(bào)名

    有獎(jiǎng)試用!!RA-Eco-RA4E2-64PIN-V1.0開發(fā)板試用活動(dòng)開始報(bào)名
    的頭像 發(fā)表于 11-09 01:02 ?330次閱讀
    有獎(jiǎng)<b class='flag-5'>試用</b>!!RA-Eco-RA4E2-64PIN-V1.0<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動(dòng)開始報(bào)名

    安卓APP開發(fā)中,如何使用加密芯片?

    加密芯片是一種專門設(shè)計(jì)用于保護(hù)信息安全的硬件設(shè)備,它通過內(nèi)置的加密算法對數(shù)據(jù)進(jìn)行加密和解密,以防止敏感數(shù)據(jù)被竊取或篡改。如下圖HD-RK3568-IOT工控
    的頭像 發(fā)表于 10-31 17:43 ?489次閱讀
    安卓APP<b class='flag-5'>開發(fā)</b>中,如何使用<b class='flag-5'>加密</b>芯片?

    點(diǎn)擊參與米爾NXP i.MX 93開發(fā)板有獎(jiǎng)試用

    米爾與NXP合作發(fā)布的新品基于NXPi.MX93應(yīng)用處理器的MYD-LMX9X開發(fā)板免費(fèi)試用活動(dòng)來啦~~米爾提供了3塊價(jià)值678元的MYD-LMX9X開發(fā)板發(fā)起試用活動(dòng)您不僅可以免費(fèi)體
    的頭像 發(fā)表于 06-13 08:02 ?604次閱讀
    點(diǎn)擊參與米爾NXP i.MX 93<b class='flag-5'>開發(fā)板</b>有獎(jiǎng)<b class='flag-5'>試用</b>

    esp32加密后無法關(guān)閉怎么解決?

    我使用esp32_devkitc_v4開發(fā)板,這測試flash加密功能 ,但當(dāng)我根據(jù)文檔所示https://docs.espressif.com/projects/esp
    發(fā)表于 06-06 06:48

    PSoC 6 MCUBoot和mbedTLS是否支持加密硬件加速?

    。 使用 MCUBoot 驗(yàn)證兩個(gè)應(yīng)用程序時(shí),運(yùn)行時(shí)間大約需要秒鐘。 在 README.md 的 \"安全 \"一欄中寫道 與軟件實(shí)現(xiàn)相比,硬件加速加密技術(shù)將啟動(dòng)時(shí)間縮短了四倍多
    發(fā)表于 05-29 08:17

    什么是TLS加密?TLS加密功能特點(diǎn)

    的數(shù)據(jù)傳輸安全。它是SSL(Secure Sockets Layer)協(xié)議的后繼者,繼承并增強(qiáng)了SSL的安全特性,已經(jīng)成為互聯(lián)網(wǎng)上加密通信的事實(shí)標(biāo)準(zhǔn)。 TLS加密的核心功能和特點(diǎn)包括: 1、數(shù)據(jù)
    的頭像 發(fā)表于 04-03 13:49 ?761次閱讀
    主站蜘蛛池模板: 男人免费网站 | 黑吊大战白xxxxxx | 老阿姨才是最有味的一区二区 | 国产毛片AV久久久久精品 | 九九免费的视频 | 年轻的搜子8中字在线观看 年轻的朋友4在线看中文字幕 | 久久在精品线影院精品国产 | 永久adc视频年龄确认 | 最近韩国日本免费观看mv免费版 | 国产产一区二区三区久久毛片国语 | 风流少妇BBWBBW69视频 | 国产综合欧美区在线 | 国产精品成人无码久免费 | 国产人妻久久久精品麻豆 | 无码国产色欲XXXX视频 | 久久国产精品永久免费网站 | 国产一区内射最近更新 | 国产精品久久久久久人妻香蕉 | CHINA末成年VIDEO学生 | 中文字幕专区高清在线观看 | 国厂精品114福利电影 | 茎身铃口调教 | 东北足疗店妓女在线观看 | 国产产一区二区三区久久毛片国语 | 成在线人免费 | 在线看片福利无码网址 | 日韩中文字幕欧美在线视频 | 啊…嗯啊好深男男高h文总受 | 达达兔欧美午夜国产亚洲 | 色爱区综合小说 | 伊人狼人久久精品热9 | 亚洲黄网站wwwwww | 体内精69xxxxxx喷潮 | 精品国产自在自线官方 | 色欲档案之麻雀台上淫 | 午夜黄视频 | 国产交换丝雨巅峰 | 久久精品中文字幕 | 中文字幕不卡一区二区三区 | 欧美午夜精品久久久久久浪潮 | 精品无码无人网站免费视频 |