MCPcopy Create free account
hub / github.com/FreeOpcUa/python-opcua / padding

Method padding

opcua/crypto/security_policies.py:129–145  ·  view source on GitHub ↗

Create padding for a block of given size. plain_size = size + len(padding) + signature_size() plain_size = N * plain_block_size()

(self, size)

Source from the content-addressed store, hash-verified

127 return 1
128
129 def padding(self, size):
130 """
131 Create padding for a block of given size.
132 plain_size = size + len(padding) + signature_size()
133 plain_size = N * plain_block_size()
134 """
135 if not self.is_encrypted:
136 return b''
137 block_size = self.Encryptor.plain_block_size()
138 extrapad_size = 2 if self.Encryptor.encrypted_block_size() > 256 else 1
139 rem = (size + self.signature_size() + extrapad_size) % block_size
140 if rem != 0:
141 rem = block_size - rem
142 data = bytes(bytearray([rem%256])) * (rem + 1)
143 if self.Encryptor.encrypted_block_size() > 256:
144 data = data + bytes(bytearray([rem>>8]))
145 return data
146
147 def min_padding_size(self):
148 if self.is_encrypted:

Callers 1

to_binaryMethod · 0.45

Calls 3

signature_sizeMethod · 0.95
plain_block_sizeMethod · 0.45
encrypted_block_sizeMethod · 0.45

Tested by

no test coverage detected