|
43 | 43 | import static com.oracle.graal.python.builtins.PythonBuiltinClassType.NotImplementedError;
|
44 | 44 | import static com.oracle.graal.python.builtins.PythonBuiltinClassType.TypeError;
|
45 | 45 | import static com.oracle.graal.python.builtins.PythonBuiltinClassType.ValueError;
|
| 46 | +import static com.oracle.graal.python.builtins.modules.SSLModuleBuiltins.LOGGER; |
46 | 47 | import static com.oracle.graal.python.builtins.objects.ssl.CertUtils.getCertificates;
|
47 | 48 |
|
48 | 49 | import java.io.BufferedReader;
|
|
65 | 66 | import java.util.Collections;
|
66 | 67 | import java.util.Enumeration;
|
67 | 68 | import java.util.List;
|
| 69 | +import java.util.logging.Level; |
68 | 70 |
|
69 | 71 | import javax.net.ssl.SNIHostName;
|
70 | 72 | import javax.net.ssl.SSLContext;
|
|
77 | 79 | import com.oracle.graal.python.builtins.PythonBuiltinClassType;
|
78 | 80 | import com.oracle.graal.python.builtins.PythonBuiltins;
|
79 | 81 | import com.oracle.graal.python.builtins.modules.SSLModuleBuiltins;
|
80 |
| -import static com.oracle.graal.python.builtins.modules.SSLModuleBuiltins.LOGGER; |
81 | 82 | import com.oracle.graal.python.builtins.objects.PNone;
|
82 | 83 | import com.oracle.graal.python.builtins.objects.bytes.PBytes;
|
83 | 84 | import com.oracle.graal.python.builtins.objects.bytes.PBytesLike;
|
|
100 | 101 | import com.oracle.graal.python.nodes.PNodeWithRaise;
|
101 | 102 | import com.oracle.graal.python.nodes.attributes.GetAttributeNode;
|
102 | 103 | import com.oracle.graal.python.nodes.function.PythonBuiltinBaseNode;
|
103 |
| -import com.oracle.graal.python.nodes.function.PythonBuiltinNode; |
104 | 104 | import com.oracle.graal.python.nodes.function.builtins.PythonBinaryBuiltinNode;
|
105 | 105 | import com.oracle.graal.python.nodes.function.builtins.PythonBinaryClinicBuiltinNode;
|
106 | 106 | import com.oracle.graal.python.nodes.function.builtins.PythonClinicBuiltinNode;
|
|
125 | 125 | import com.oracle.truffle.api.frame.VirtualFrame;
|
126 | 126 | import com.oracle.truffle.api.interop.UnsupportedMessageException;
|
127 | 127 | import com.oracle.truffle.api.library.CachedLibrary;
|
128 |
| -import java.util.logging.Level; |
129 | 128 |
|
130 | 129 | @CoreFunctions(extendClasses = PythonBuiltinClassType.PSSLContext)
|
131 | 130 | public class SSLContextBuiltins extends PythonBuiltins {
|
@@ -508,7 +507,7 @@ protected ArgumentClinicProvider getArgumentClinic() {
|
508 | 507 | @Builtin(name = "num_tickets", minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 2, isGetter = true, isSetter = true)
|
509 | 508 | @GenerateNodeFactory
|
510 | 509 | @TypeSystemReference(PythonArithmeticTypes.class)
|
511 |
| - abstract static class NumTicketsNode extends PythonBuiltinNode { |
| 510 | + abstract static class NumTicketsNode extends PythonBinaryBuiltinNode { |
512 | 511 | @SuppressWarnings("unused")
|
513 | 512 | @Specialization(guards = "isNoValue(value)")
|
514 | 513 | int get(PSSLContext self, PNone value) {
|
@@ -540,16 +539,27 @@ Object set(VirtualFrame frame, PSSLContext self, Object value) {
|
540 | 539 |
|
541 | 540 | @Builtin(name = "sni_callback", minNumOfPositionalArgs = 1, maxNumOfPositionalArgs = 2, isGetter = true, isSetter = true)
|
542 | 541 | @GenerateNodeFactory
|
543 |
| - abstract static class SNICallbackNode extends PythonBuiltinNode { |
| 542 | + abstract static class SNICallbackNode extends PythonBinaryBuiltinNode { |
544 | 543 | @Specialization
|
545 | 544 | Object notImplemented(@SuppressWarnings("unused") PSSLContext self, @SuppressWarnings("unused") Object value) {
|
546 | 545 | throw raise(NotImplementedError);
|
547 | 546 | }
|
548 | 547 | }
|
549 | 548 |
|
| 549 | + @Builtin(name = "post_handshake_auth", minNumOfPositionalArgs = 1, isGetter = true) |
| 550 | + @GenerateNodeFactory |
| 551 | + abstract static class PostHandshakeAuthNode extends PythonUnaryBuiltinNode { |
| 552 | + @Specialization |
| 553 | + static Object pha(@SuppressWarnings("unused") PSSLContext self) { |
| 554 | + // JDK doesn't implement post handshake auth. CPython returns None when it's not |
| 555 | + // available |
| 556 | + return PNone.NONE; |
| 557 | + } |
| 558 | + } |
| 559 | + |
550 | 560 | @Builtin(name = "set_default_verify_paths", minNumOfPositionalArgs = 1)
|
551 | 561 | @GenerateNodeFactory
|
552 |
| - abstract static class SetDefaultVerifyPathsNode extends PythonBuiltinNode { |
| 562 | + abstract static class SetDefaultVerifyPathsNode extends PythonUnaryBuiltinNode { |
553 | 563 | @Specialization
|
554 | 564 | Object set(VirtualFrame frame, PSSLContext self,
|
555 | 565 | @CachedLibrary(limit = "1") PythonObjectLibrary lib,
|
@@ -612,7 +622,7 @@ private TruffleFile toTruffleFile(PythonObjectLibrary lib, Object path) throws P
|
612 | 622 |
|
613 | 623 | @Builtin(name = "cert_store_stats", minNumOfPositionalArgs = 1)
|
614 | 624 | @GenerateNodeFactory
|
615 |
| - abstract static class CertStoreStatsNode extends PythonBuiltinNode { |
| 625 | + abstract static class CertStoreStatsNode extends PythonUnaryBuiltinNode { |
616 | 626 | @TruffleBoundary
|
617 | 627 | @Specialization
|
618 | 628 | Object storeStats(PSSLContext self) {
|
|
0 commit comments