#설치
tar zxvf protobuf-python-3.5.1.tar.gz
cd protobuf-3.5.1
./configure
make
make check
make install
#
protoc --version 확인
#python protobuf 모듈 설치
cd python
python setup.py install
#Write kms_sdk.proto 파일
# 생성 kms_sdk_pb2.py
protoc -I =. / --python_out =. / kms_sdk.proto
import kms_sdk_pb2
msgdata = kms_sdk_pb2.CipherMsg()
msgdata.head.algorithm = 1
msgdata.head.encryptionContext = 'hello'
msgdata.head.blockType = 0
msgdata.head.blockLength = 100
#repeated类型处理
dataKey1 = msgdata.head.dataKeys.add()
dataKey1.cmkRegion = 'guangzhou'
dataKey1.cmkKeyId = 'aaaaaaaaa'
dataKey1.dataKey = 'AAAAAAAA'
dataKey2 = msgdata.head.dataKeys.add()
dataKey2.cmkRegion = 'shanghai'
dataKey2.cmkKeyId = 'bbbbbb'
dataKey2.dataKey = 'BBBBBBB'
sendDataStr = msgdata.SerializeToString()
print('SerializeToString:',sendDataStr)
receiveDataStr = sendDataStr
receiveData = kms_sdk_pb2.CipherMsg()
receiveData.ParseFromString(receiveDataStr)
print(receiveData.head.encryptionContext)
print(len(receiveData.head.dataKeys))
print(receiveData.head.dataKeys[0].cmkRegion)