in releases/go/encryption-sdk/EncryptDecryptHelpers/EncryptDecryptHelpers.go [878:914]
func (_static *CompanionStruct_Default___) ReadAndDecryptFramedMessageBody(buffer m_SerializeFunctions.ReadableBuffer, header m_Header.HeaderInfo, key _dafny.Sequence, crypto *m_AtomicPrimitives.AtomicPrimitivesClient) m_Wrappers.Result {
var res m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.TupleOf(_dafny.EmptySeq, m_SerializeFunctions.Companion_ReadableBuffer_.Default()))
_ = res
var _0_valueOrError0 m_Wrappers.Result = m_Wrappers.Result{}
_ = _0_valueOrError0
_0_valueOrError0 = (m_MessageBody.Companion_Default___.ReadFramedMessageBody(buffer, header, _dafny.SeqOf(), buffer)).MapFailure(func(coer28 func(m_SerializeFunctions.ReadProblems) m_AwsCryptographyEncryptionSdkTypes.Error) func(interface{}) interface{} {
return func(arg29 interface{}) interface{} {
return coer28(arg29.(m_SerializeFunctions.ReadProblems))
}
}(Companion_Default___.MapSerializeFailure(_dafny.SeqOfString(": ReadFramedMessageBody"))))
if (_0_valueOrError0).IsFailure() {
res = (_0_valueOrError0).PropagateFailure()
return res
}
var _1_messageBody m_SerializeFunctions.SuccessfulRead
_ = _1_messageBody
_1_messageBody = (_0_valueOrError0).Extract().(m_SerializeFunctions.SuccessfulRead)
var _2_valueOrError1 m_Wrappers.Result = m_Wrappers.Companion_Result_.Default(_dafny.EmptySeq)
_ = _2_valueOrError1
var _out0 m_Wrappers.Result
_ = _out0
_out0 = m_MessageBody.Companion_Default___.DecryptFramedMessageBody((_1_messageBody).Dtor_data().(m_MessageBody.FramedMessageBody), key, crypto)
_2_valueOrError1 = _out0
if (_2_valueOrError1).IsFailure() {
res = (_2_valueOrError1).PropagateFailure()
return res
}
var _3_plaintext _dafny.Sequence
_ = _3_plaintext
_3_plaintext = (_2_valueOrError1).Extract().(_dafny.Sequence)
var _4_messageBodyTail m_SerializeFunctions.ReadableBuffer
_ = _4_messageBodyTail
_4_messageBodyTail = (_1_messageBody).Dtor_tail()
res = m_Wrappers.Companion_Result_.Create_Success_(_dafny.TupleOf(_3_plaintext, _4_messageBodyTail))
return res
return res
}