{"id":280,"date":"2024-09-26T11:09:38","date_gmt":"2024-09-26T18:09:38","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/go\/?p=280"},"modified":"2025-02-10T06:20:48","modified_gmt":"2025-02-10T14:20:48","slug":"go-1-23-1-3-and-1-22-7-3-microsoft-builds-now-available","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/go\/go-1-23-1-3-and-1-22-7-3-microsoft-builds-now-available\/","title":{"rendered":"Go 1.23.1-3 and 1.22.7-3 Microsoft builds now available"},"content":{"rendered":"<p>A new release of the Microsoft build of Go is now <a href=\"https:\/\/github.com\/microsoft\/go#download-and-install\">available for download<\/a>.\nThis release includes a fix to the Windows CNG crypto backend and no other changes.<\/p>\n<table>\n<thead>\n<tr>\n<th>Microsoft Release<\/th>\n<th>Upstream Tag<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=\"https:\/\/github.com\/microsoft\/go\/releases\/tag\/v1.23.1-3\">v1.23.1-3<\/a><\/td>\n<td>go1.23.1 <a href=\"https:\/\/go.dev\/doc\/devel\/release#go1.23.1\">release notes<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/github.com\/microsoft\/go\/releases\/tag\/v1.22.7-3\">v1.22.7-3<\/a><\/td>\n<td>go1.22.7 <a href=\"https:\/\/go.dev\/doc\/devel\/release#go1.22.7\">release notes<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A Go project using DES or 3DES (TripleDES) with the Windows CNG crypto backend may be broken by this change:<\/p>\n<blockquote>\n<p>Go&#8217;s <a href=\"https:\/\/pkg.go.dev\/crypto\/des\">DES and 3DES<\/a> implementations use the ECB chaining mode. Unfortunately, CNG defaults to CBC chaining mode, and we were not overriding that property when instantiating DES and 3DES keys.<\/p>\n<p><a href=\"https:\/\/github.com\/microsoft\/go-crypto-winnative\/pull\/58\">This PR<\/a> fixes this mismatch by honoring Go&#8217;s chaining mode together with a new extensive test suite that ensures we don&#8217;t regress.<\/p>\n<p>This a breaking change: data longer than the DES or 3DES block size (8 bytes and 24 bytes respectively) encrypted with the CNG backend won&#8217;t be decryptable after this fix. Note that the Microsoft Go toolchain has implemented DES and 3DES using the CNG backend since Go 1.22.<\/p>\n<p>To work around this issue, please follow these steps:<\/p>\n<ol>\n<li>Decrypt the existing encrypted data using a Microsoft Go toolchain that doesn&#8217;t contain the fix.<\/li>\n<li>Encrypt the just-decrypted data using a Microsoft Go toolchain that contains the fix.<\/li>\n<\/ol>\n<\/blockquote>\n<\/blockquote>\n<p>To be specific, 1.23.1-2 and 1.22.7-2 don&#8217;t contain this fix and can be used for the workaround.<\/p>\n<p>As you may know, DES and 3DES are cryptographically broken, but for compatibility reasons, they are supported by Go and Microsoft Go.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A new release of the Microsoft build of Go is now available for download.<\/p>\n","protected":false},"author":162502,"featured_media":433,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[4,5],"class_list":["post-280","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-go","tag-go","tag-release"],"acf":[],"blog_post_summary":"<p>A new release of the Microsoft build of Go is now available for download.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/users\/162502"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/comments?post=280"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/posts\/280\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/media\/433"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/media?parent=280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/categories?post=280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/go\/wp-json\/wp\/v2\/tags?post=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}