AaltoTLS.RecordLayer.RecordHandler.RemovePadding C# (CSharp) Метод

RemovePadding() приватный статический Метод

private static RemovePadding ( CipherSuite cipherSuite, Record record ) : bool
cipherSuite AaltoTLS.PluginInterface.CipherSuite
record Record
Результат bool
        private static bool RemovePadding(CipherSuite cipherSuite, Record record)
        {
            BulkCipherAlgorithmType cipherType = cipherSuite.BulkCipherAlgorithm.Type;
            bool verified = true;

            if (cipherType == BulkCipherAlgorithmType.Block) {
                // Get padding bytes from the end of the fragment
                int padding = record.Fragment[record.Fragment.Length-1]+1;

                // Verify the correctness of padding
                if (padding > record.Fragment.Length) {
                    verified = false;
                } else {
                    verified = true;
                    if (record.Version.HasVerifiablePadding) {
                        for (int i=1; i<=padding; i++) {
                            if (record.Fragment[record.Fragment.Length-i] != (padding-1)) {
                                verified = false;
                            }
                        }
                    }

                    // Remove padding from the fragment data
                    if (verified) {
                        byte[] fragment = new byte[record.Fragment.Length-padding];
                        Buffer.BlockCopy(record.Fragment, 0, fragment, 0, fragment.Length);
                        record.Fragment = fragment;
                    }
                }
            }

            return verified;
        }